0

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

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

十进制值是否会设置或舍入?

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

4

3 回答 3

1

CGRecthasCGPointCGSizewhich are all 都来自CGFloatwhich 又来自float.

它可以float对所有人有价值,但CGRect cordinates不会round

于 2012-10-23T08:37:07.627 回答
0

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

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

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

btn1.frame = CGRectMake(20.5f, 113.5f, 92.5f, 93);
btn2.frame = CGRectMake(113.0f, 113.5f, 186, 93);
于 2012-10-23T09:01:54.537 回答
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 CGRectIntegral and Stackoverflow answer

于 2012-10-23T09:19:23.843 回答