위치(origin)와 크기(size)를 캡슐화 한 구조체
public struct CGRect {
public var origin: CGPoint
public var size: CGSize
// ...
}
public struct CGPoint {
public var x: CGFloat
public var y: CGFloat
// ...
}
public struct CGSize {
public var width: CGFloat
public var height: CGFloat
// ...
}
뷰의 크기를 캡슐화 한 구조체 (CGRect)
1. 자신의 지역좌표, 좌표(origine)와 크기(size)
2. origin은 (0, 0), size는 frame.size와 동일한 값
// ..viewDidLoad()
let rect = CGRect(x: 10, y: 10, width: 100, height: 100)
let myView = UIView(frame: rect)
view.addSubview(myView)
print("frame: \(myView.frame)")
print("bounds: \(myView.bounds)")
/*
origin.x, origin.y, size.width, size.height
frame: (10.0, 10.0, 100.0, 100.0)
bounds: (0.0, 0.0, 100.0, 100.0)
*/
뷰를 보여줄지 결정, 설정된 뷰는 유저 인터렉션 이벤트를 처리하지 않는다.
프레임을 벗어난 콘텐츠를 그릴지 결정
그리기 성능과 관계가 있는 속성
겹쳐진 뷰와 고려해서 뷰를 그리는 속성
HIU: alpha 1.0 ⇒ false / else ⇒ true
true ⇒ 새로 그려질 때 기존에 그려진 값을 지우고 다시 그린다.
커스텀뷰 성능이 괜찮다면 그대로 사용