2010-03-11 44 views

回答

2

我通過谷歌發現了一些這個bug的參考,但是每個人都通過玩字體大小來解決它。經過多次搜索後,我發現this thread表示在視圖的幀包含小數像素值時應用了抗鋸齒,例如,如果你將它的大小計算爲超級視圖的一小部分。

果然,將CGRect的值轉換爲int可以使視圖的框架完美工作。

textFieldWidth = 300; 
textFieldHeight = 31; 
offsetX = 0; 
offsetY = (superview.bounds.size.height - textFieldHeight)/2; 

textField.frame = CGRectMake((int) offsetX, 
          (int) offsetY, 
          (int) textFieldWidth, 
          (int) textFieldHeight); 

也有CGRectIntegral功能,您可以使用一個CGRect轉換:所以作爲一個例子,如果你想你的文本字段設置爲垂直於上海華中心,你應該使用一個int鑄像這樣積分值。

+0

非常感謝您的回答,這似乎是最好的解決方案。 – David 2010-04-06 11:10:37

+0

我在Interface Builder中也看到過這種情況。我一定要檢查尺寸以確保它們不含分數。我的解決方案是重新創建按鈕,這是蹩腳的。但這很容易,只需單擊按鈕,按住選項鍵,然後將其拖過去。這將創建一個與最後一個按鈕相同的新按鈕,但帶有適當的抗鋸齒功能。接下來要做的就是將你的行動和網點聯繫起來,並重新定位它。哦,並刪除舊的按鈕。 :) – 2011-09-06 15:01:15