我有一个非常简单的视图控制器..
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()
}
}
我正在尝试创建一个圆形的矩形,但我不知道该怎么做。我已经阅读了很多教程,但没有一个能为我工作。请帮助我。
答案 0 :(得分:1)
因为你没有提供填充颜色,我猜你的矩形应该有一个清晰的颜色。要使该工作将您的initwithframe更改为以下内容:
override init(frame: CGRect) {
super.init(frame: frame)
opaque = false
}
然后增加cornerradii值(例如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()
答案 1 :(得分:0)
如果您尝试创建剪切内容的圆角矩形视图,则应在视图图层上使用图层蒙版或简单myVector.insert(0,1.0,1);
属性,同时设置-cornerRadius
。
如果你只想要一个圆角矩形的视图背景,在抚摸之前你应该设置笔触颜色
我不太了解,但在objC中可能是这样的
-borderWidth
在Swift中可能:
- (void) drawRect:(CGRect) rect {
UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:5.0];
[[UIColor redColor] setStroke];
[bezierPath stroke];
}