我有一个非常简单的视图控制器..。
import UIKit
class ViewController: UIViewController {
let f = TstKocka(frame: CGRectMake(100,100, 150, 150))
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(f)
}
}我有一个UIView类:
class TstKocka: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func drawRect(rect: CGRect) {
var path = UIBezierPath(roundedRect: rect, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: CGSize(width: 2.0, height: 2.0))
path.lineWidth = 1.0
path.stroke()
}
}我试图创造一个圆形的直角,但我不知道该怎么做。我读过很多教程,但没有一个是为me.Please工作的。
发布于 2015-05-05 05:51:42
由于您没有提供填充颜色,我想您的rect应该有一个清晰的颜色。要完成这项工作,请将initwithframe更改为以下内容:
override init(frame: CGRect) {
super.init(frame: frame)
opaque = false
}然后增加角半径值(例如20.0,20.0 ),以确保其工作!:)
编辑
填充实际上就像抚摸一样简单:
let path = UIBezierPath(roundedRect: rect, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: CGSize(width: 20.0, height: 20.0))
path.lineWidth = 1.0
UIColor.blueColor().setFill() // or whatever fill color you like
path.fill()
UIColor.redColor().setStroke()
path.stroke()发布于 2015-05-05 06:26:14
如果您试图创建一个圆形的rect视图来剪辑内容,则应该在视图层上使用图层掩码或简单的-cornerRadius属性,同时设置-borderWidth。
如果你只想要一个视图背景圆角,在抚摸之前,你应该设置笔画的颜色。
我不知道斯威夫特,但在objC可能是这样的
- (void) drawRect:(CGRect) rect {
UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:5.0];
[[UIColor redColor] setStroke];
[bezierPath stroke];
}在Swift中可能:
override func drawRect(rect: CGRect) {
let path = UIBezierPath(roundedRect: rect, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: CGSize(width: 2.0, height: 2.0))
UIColor.redColor().setStroke()
path.lineWidth = 1.0
path.stroke()
}https://stackoverflow.com/questions/30045025
复制相似问题