它将在 iOS 中我可以将按钮的帧大小设置为
btn1.frame = CGRectMake(20.5, 113.5, 92.5, 93);
btn2.frame = CGRectMake(113.0, 113.5, 186, 93);
十进制值是否会设置或舍入?
对我来说,在 4 英寸的模拟器显示器中,按钮是正确的,这两者之间没有任何间隙。但是在 3.5 英寸的模拟器中,它的两个按钮之间有一个间隙。为什么?
CGRect
hasCGPoint
和CGSize
which are all 都来自CGFloat
which 又来自float
.
它可以float
对所有人有价值,但CGRect
cordinates
不会round
f
您需要通过在十进制数字的末尾声明来指定数字是否具有十进制值。
这表示该数字具有小数部分。
而且,对于您的代码,这应该有效:
btn1.frame = CGRectMake(20.5f, 113.5f, 92.5f, 93);
btn2.frame = CGRectMake(113.0f, 113.5f, 186, 93);
是的,您可以为按钮的框架赋予浮点值。
button.frame = CGRectMake(20.5, 113.5, 92.5, 93.0);
并用于CGRectIntegral
将任何十进制值转换为其整数等价物。
在为您的按钮分配框架后,只需写下这个 -
button1.frame = CGRectIntegral(button1.frame);
button2.frame = CGRectIntegral(button2.frame);
可以看到帧前后的效果NSLog
。
例子:-button
button.frame = CGRectMake(20.5, 113.5, 92.5, 93.0);
NSLog(@"Before - %@",NSStringFromCGRect(button.frame));
button.frame = CGRectIntegral(button.frame);
NSLog(@"After - %@",NSStringFromCGRect(button.frame));
有关更多详细信息,请参见 - Apple doc on CGRectIntegral and Stackoverflow answer