自定义button框架看起来不如Round Rect UIButton
我试图画一个自定义的button框架如下:
UIBezierPath *stroke = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:RECT_CORNECR_RADIUS]; [stroke stroke];
但由于某种原因,angular落的曲线看起来比两边思考。 如果你看看UIButton的默认框架,它是非常统一的。 A是一个UIButton,B是一个自定义button。
任何想法,我可以使它更像UIButton。
你正在抚摸你的button的边界。 这将画出你的线在视图的边缘上居中,所以线的一半厚度在边界之外并且不被绘制。 这就是为什么它是在angular落里的全部厚度。 在你的边界矩形上使用CGRectInset
(插入你的线的一半厚度),然后笔触。
你有问题可能是由于抗锯齿。 在绘制beizerPath之前,可以尝试更改CoreGraphics的抗锯齿设置。
更简单的解决scheme是使用button的CALayer
及其cornerRadius
属性。 绘制一个圆angular将会更容易
如果你是自定义button:
self.layer.cornerRadius = RECT_CORNER_RADIUS; self.layer.borderWidth = 1.0f; self.layer.borderColor = [UIColor blackColor].CGColor;
当然,不要忘记导入QuartzCore框架并导入它的头文件来工作 (#import)