设置按钮的帧大小:小数点值

时间:2012-10-23 08:34:18

标签: iphone ios frame

它将在iOS中我可以将按钮的帧大小设置为

btn1.frame = CGRectMake(20.5, 113.5, 92.5, 93);
btn2.frame = CGRectMake(113.0, 113.5, 186, 93);

十进制值是设置还是舍入?

对我来说,在4英寸模拟器显示器中,按钮正常,两者之间没有任何间隙。 但在3.5英寸模拟器显示它两个按钮之间的差距。为什么呢?

3 个答案:

答案 0 :(得分:1)

CGRect包含CGPointCGSize,这些CGFloatfloat均来自floatCGRect来自cordinates

它可以为所有round {{1}}保留{{1}}值,而不会{{1}}

答案 1 :(得分:0)

您需要通过在十进制数字末尾说明f来指定数字是否具有小数值。

这表示该数​​字有小数部分。

而且,对于您的代码,这应该有效:

btn1.frame = CGRectMake(20.5f, 113.5f, 92.5f, 93);
btn2.frame = CGRectMake(113.0f, 113.5f, 186, 93);

答案 2 :(得分:0)

是的,你可以给按钮的框架赋予浮动值。

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 CGRectIntegralStackoverflow answer