2012-10-23 60 views
0

它將在iOS中我可以設置一個按鈕的幀大小爲設置幀大小:小數點值

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

無論十進制值將設置或圓形?

對於我來說,在4英寸的模擬器顯示器中,按鈕是正確的,兩者之間沒有任何間隙。 但在3.5英寸的模擬器顯示它來與兩個按鈕之間的差距。爲什麼?

+0

:btn.frame = CGRectMake(20.5f,113.5f,92.5f,93.0f); –

+0

@Dev - 任何一個答案都沒有幫助你? – TheTiger

+0

沒有Vakul Saini ...我不知道它爲什麼會發生這樣的情況..在$英寸的顯示屏中,它正在到來......但在3.5英寸的屏幕上出現了一個小差距.. :( – Dev

回答

1

CGRect具有CGPointCGSize它們都從CGFloat這是從float衍生而得。

它可以容納float值所有CGRectcordinates並不會round

0

你需要指定一個數目是否已在小數的末尾註明f一個十進制值。

這就是說數字有小數部分。

而且,對於你的代碼,這應該工作:

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

是否有這種幫助? –

0

是的,你可以給float值按鈕的框架。

button.frame = CGRectMake(20.5, 113.5, 92.5, 93.0); 

並使用CGRectIntegral任何十進制值轉換爲整數的等價物。
您的按鈕分配框架後,只寫這個 -

button1.frame = CGRectIntegral(button1.frame); 
button2.frame = CGRectIntegral(button2.frame); 

可以前後NSLogbutton幀後看到效果。
實施例: -

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)); 

更多細節請參閱本 - Click on me for more information of CGRectIntegral