Ios 我怎样才能在故事板中看到这幅画?
我画了一个三角形,但在故事板上看不见。我怎样才能在故事板上看到这幅画 视图控制器代码:Ios 我怎样才能在故事板中看到这幅画?,ios,swift,xcode,uibezierpath,cashapelayer,Ios,Swift,Xcode,Uibezierpath,Cashapelayer,我画了一个三角形,但在故事板上看不见。我怎样才能在故事板上看到这幅画 视图控制器代码: class ViewController: UIViewController { @IBOutlet weak var fooView: UIView! var polygonShape = CAShapeLayer() override func viewDidLoad() { super.viewDidLoad() let polygonP
class ViewController: UIViewController {
@IBOutlet weak var fooView: UIView!
var polygonShape = CAShapeLayer()
override func viewDidLoad() {
super.viewDidLoad()
let polygonPath = UIBezierPath()
polygonPath.move(to: CGPoint(x: 50, y: -1))
polygonPath.addLine(to: CGPoint(x: 93.3, y: 74))
polygonPath.addLine(to: CGPoint(x: 6.7, y: 74))
polygonPath.close()
polygonShape.frame = fooView.bounds
polygonShape.path = polygonPath.cgPath
fooView.layer.mask = polygonShape
}
}
将您的类更改为:
@IBDesignable
class FirstImageView: UIView {
var polygonShape: CAShapeLayer!
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
commonInit()
}
func commonInit() -> Void {
if polygonShape == nil {
polygonShape = CAShapeLayer()
layer.mask = polygonShape
}
}
override func layoutSubviews() {
super.layoutSubviews()
let polygonPath = UIBezierPath()
polygonPath.move(to: CGPoint(x: 0.0, y: bounds.size.height))
polygonPath.addLine(to: CGPoint(x: bounds.width * 0.5, y: 0.0))
polygonPath.addLine(to: CGPoint(x: bounds.size.width, y: bounds.size.height))
polygonPath.close()
polygonShape.path = polygonPath.cgPath
}
}
可以从ViewController类中删除所有内容。在这一点上,你甚至根本不需要这个类
选择故事板上的视图,并在Identity Inspector窗格顶部将自定义类从默认UIView更改为FirstImageView
在顶部编辑器菜单下,选择“刷新所有视图”或确保选中“自动刷新视图”
结果:
你想要一个指向上的三角形吗?是的,先生。我想看故事板上的图画