CALayer Border奇怪的问题
我正在为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; }
我的截图
谢谢
看起来你有2.5点的边框宽度。 根据设备的不同,可能会导致边缘模糊。
比2的偶数倍,看看会发生什么。
编辑
我只是测试了我的假设,这是错的! 这确实是一个奇怪的问题。 我已经看到过去的半像素对齐问题,但它们总是具有大小为奇数像素的视图的function,因此系统必须在边缘上绘制半像素,或者有边框这并不完全符合像素完美的方式。
我的猜测是,当涉及到舍入视图和剪辑时,这是不精确的浮点数学与绘图系统中的不精确相结合的函数。
那么我唯一的建议是使用2视图方法,其中外部视图 – 在您的情况下 – 背景颜色(或您想要边框的颜色),内部视图是标签。 您可以使外部视图略大于内部视图,并使每个视图都圆形。
我有同样的问题,这对我有用
myLayer.allowsEdgeAntialiasing = false
- 在游戏过程中添加另一个背景图片来改变背景
- 允许在iPhone上创build文件夹
- RSA使用公钥encryption
- 如何在每次构build(运行)xcode 4中的ios应用程序之前自动运行OCUnit逻辑testing?
- 如何使用iOS 10,Xcode 8中的iMessage应用程序处理OAuth样式的登录?
- CoreData以另一个关系(m2n)获取关系和组的计数请求
- iOS6模拟器MKMapKit“在框架中找不到default.styleproto”
- iOS – 在codeSense中出现自动合成属性的“添加”方法
- 在'RKObjectManager'types的对象上找不到属性'managedObjectStore'