IBOutlet에 hoge Height Constraint를 쓰고 싶지 않아요!

5334 단어 iOSSwiftAutoLayout
hogeView 만들기
AutoLayout으로 width height 설정
IBOutlet으로 width height 연결하기
hogeWidthConstraint.constant = 100
뭘 쓰고 싶지 않아요.😭
이런 상황에서 좀 더 간단한 방법.

결론


Constraint에 Identifier 추가

그리고 그렇습니다.
hogeView.constraints.filter { $0.identifier == "height" }.forEach { $0.constant = 100 }
역시 기사라면 욕을 먹을 테니 extension을 선택하세요.
extension UIView {
    func updateConstraint(identifier:String, value:CGFloat ) {
        self.constraints.filter { $0.identifier == identifier }.forEach { $0.constant = value }
    }
}

//利用側
hogeView.updateConstraint(identifier: "width",value: 100)
장점: IBOutlet은 대량으로 생성되지 않음
단점: Identifier 설정을 잊은 경우

다른 해석(좀 의심스럽다)


Constraint의 NSLayoutattribute를 보았는데'hogeView를 바꾸는 위드th'처럼 보일 수도 있다.
hogeView.constraints.filter { $0.firstAttribute == .width }.forEach { $0.constant = 100 }
extension UIView {    
    func updateConstraint(attribute:NSLayoutAttribute, value:CGFloat) {
        self.constraints.filter { $0.firstAttribute == attribute }.forEach { $0.constant = value }
    }
}

//利用側
hogeView.updateConstraint(attribute: .width,value: 100)

장점: Identifier를 사용하지 않음
단점:attribute는firstAttribute와secondAttribute가 있습니다
attribute에 자신이 없으면 못 쓸 것 같아.
자칫 상관없는attribute를 말아들일 수 있다는 것은 아직 자신이 없다.
아마도 attribute를 고정시키는 방법이 좋을 거예요.
스케줄러:자세한 건 시간 나면 알아볼게요.조금만 알아봐주면 스마트하지 않을까요?

감상


(이 방법은 알지만 Objective-C를 쓰면 귀찮고 싫죠. Swift를 쓰면 유창하게 쓰일 수 있어요.)
팀 개발은 받아들이는 거예요, 미묘한 거예요?
나는 이 방법을 채택하는 것을 한 번도 본 적이 없다.
더 좋은 방법 없을까?🤔

좋은 웹페이지 즐겨찾기