Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我怎样才能在故事板中看到这幅画?_Ios_Swift_Xcode_Uibezierpath_Cashapelayer - Fatal编程技术网

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

在顶部编辑器菜单下,选择“刷新所有视图”或确保选中“自动刷新视图”

结果:


你想要一个指向上的三角形吗?是的,先生。我想看故事板上的图画