예시를 통해 빠르게 알아보겠습니다. let testView = UIView() view.addSubview(testView) testView.translatesAutoresizingMaskIntoConstraints = false NSLayoutConstraint.activate([ testView.widthAnchor.constraint(equalToConstant: 300), testView.heightAnchor.constraint(equalToConstant: 300), testView.centerXAnchor.constraint(equalTo: view.centerXAnchor), testView.centerYAnchor.constraint(equalTo: view.centerYAnchor) ]..
Instance Property frame 슈퍼뷰의 좌표시스템에서 뷰의 위치와 사이즈를 나타내는 직사각형의 프레임 var frame: CGRect { get set } Instance Property bounds 스스로의 좌표 시스템에서 뷰의 위치와 사이즈를 나타내는 직사각형의 경계 var bounds: CGRect { get set } 뷰를 하나 그려보겠습니다. CGRect(x: , y: , width: , height: )순서입니다. frame은 화면의 왼쪽상단 귀퉁이부터 떨어진 만큼 x, y값이 나옵니다. bounds는 자기 자신의 좌표시스템이니까 0.0이 됩니다. width height는 똑같이 나옵니다. 뷰를 돌려봤습니다. 돌리기 전에 200*200 크기로 변경했습니다.ㅎㅎ 돌리기 전입니다. y..
https://developer.apple.com/documentation/foundation/operation Apple Developer Documentation developer.apple.com Operation 싱글 tast와 관련된 코드와 데이터를 나타내는 추상 클래스 Overview Operation은 추상클래스이기 때문에 직접 사용하지말고 subclass하거나 시스템에서 지정한 subclasses (NSInvocationOperation or BlockOperation)를 사용해야합니다. 추상적이지만 작업의 기본 구현에는 작업의 안전한 실행을 조정하기 위한 중요한 로직이 포함되어 있습니다. 이러한 기본 로직이 있으면 다른 시스템 객체와 올바르게 작동하는데 필요한 glue code가 아니라 ..
DispatchWorkItem 수행할 작업에 컴플리션 핸들이나 의존성 실행을 연결하는 방법으로 캡슐화합니다. Overview 디스패치 큐나 디스패치 그룹에서 작업을 캡슐화합니다. perfome() let workItem = DispatchWorkItem { print(Thread.current) for i in 1...10 { print("❤️", i) } } workItem.perform() queue.async(execute:) let serialQueue = DispatchQueue(label: "serialQueue") let workItem = DispatchWorkItem { print(Thread.current) for i in 1...10 { print("❤️", i) } } serialQ..