AutoLayoutに追従する図形を描く
5410 ワード
UIViewの contentMode
に redraw
を設定すると、Viewのframeが変わった時にAutoLayoutを使用しても簡単に図形を再描画することができます。
以下のコードでは下向きの三角形が描画されます。
import UIKit
final class TriangleView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
contentMode = .redraw
}
required init?(coder: NSCoder) {
super.init(coder: coder)
contentMode = .redraw
}
override func draw(_ rect: CGRect) {
let path = UIBezierPath()
path.move(to: rect.origin)
path.addLine(to: CGPoint(x: rect.maxX, y: rect.minY))
path.addLine(to: CGPoint(x: rect.midX, y: rect.maxY))
path.close()
UIColor.gray.setFill()
path.fill()
}
}
let view = TriangleView(frame: .init(origin: .zero, size: .init(width: 50, height: 25)))
view.backgroundColor = .white
Playgroundだと以下のコードを追記するだけで簡単にUIを確認できて便利ですね。
import PlaygroundSupport
PlaygroundPage.current.liveView = view
Author And Source
この問題について(AutoLayoutに追従する図形を描く), 我々は、より多くの情報をここで見つけました https://qiita.com/s2mr/items/e421751957e07d7311a8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .