【发布时间】:2012-10-11 07:23:18
【问题描述】:
我想绘制一个 UIButton,用 红色调 或 rgb 呈现的其他颜色填充,并且只有上边缘是圆形的。
有些人回答我是为了得到一个图像来做到这一点,但每次我想改变它时,我都必须带来新的图像并替换它,我想问我可以从代码中做到这一点而不获取图像。
【问题讨论】:
-
谢谢@rdurand,这对 ACB 的回答很有帮助
标签: objective-c ios uibutton
我想绘制一个 UIButton,用 红色调 或 rgb 呈现的其他颜色填充,并且只有上边缘是圆形的。
有些人回答我是为了得到一个图像来做到这一点,但每次我想改变它时,我都必须带来新的图像并替换它,我想问我可以从代码中做到这一点而不获取图像。
【问题讨论】:
标签: objective-c ios uibutton
没有直接的方法。实现这一点的唯一方法是创建一个段控件并在其中只保留一个段。
具体实现见this post,
更新:
如果您只想圆两个角,请检查 rdurand 评论中提到的 Round two corners in UIView 或 Just two rounded corners?。由于段控制是UIView 的子视图,这应该可以工作。
【讨论】:
您可以使用 NSBezierPath 的 bezierPathWithRoundedRect:xRadius:yRadius: 方法绘制圆角。然后用另一条贝塞尔路径绘制它。或者您可以使用 moveToPoint: lineToPoint: 和 curveToPoint:controlPoint1:controlPoint2: 定义自定义贝塞尔路径:
【讨论】: