2014-01-09 44 views
3

我添加邊框到CALayer的,但那裏有一些奇怪的行爲,由此我得到我申請了邊境後,一個模糊的邊界(見截圖)CALayer的邊境奇怪的問題

這裏是我的代碼:

- (void)configureLabel { 
self.hidden = YES; 
self.textAlignment = NSTextAlignmentCenter; 
self.font = kLightFontWithSize(12); 
self.textColor = [UIColor whiteColor]; 
self.backgroundColor = [UIColor redColor]; 

self.clipsToBounds=YES; 



CALayer * layer = self.layer; 
layer.backgroundColor = [UIColor clearColor].CGColor; 
layer.cornerRadius = self.frame.size.height/2; 
layer.borderWidth = 2.5f; 
layer.borderColor = kTextFieldGreenColor.CGColor; 
} 

我的截圖

enter image description here 感謝

回答

1

看起來你有一個2.5點的邊框寬度。根據設備的不同,可能會導致邊緣模糊。

製作比2的偶數倍,看看會發生什麼。

編輯

我剛剛測試了我的假設,這是錯誤的!這確實是一個奇怪的問題。我已經看到了過去的半像素對齊問題,但它們一直是視圖尺寸爲奇數個像素的功能,因此係統必須在邊緣繪製半像素或邊框這不完全符合像素完美的方式。

我的猜測是,這是一個不精確的浮點數學與繪圖系統中的不精確度的函數,當涉及四捨五入視圖&裁剪。

然後,我唯一的建議是使用2視圖方法,其中外部視圖是 - 在您的情況下 - 背景顏色(或您想要的邊框顏色),內部視圖是標籤。您可以使外部視圖比內部視圖稍大,並使它們各自爲圓。