일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Swift flutterviewcontroller
- 안드로이드 FCM
- 스위프트 카메라
- silent push
- flutter rotate
- 안드로이드 앨범
- Flutter NativeView
- 푸시 데이터 저장
- 앱 꺼졌을 때 푸시 데이터 저장
- swift 문자
- 앱 백그라운드 푸시 데이터 저장
- native flutter view
- FlutterView MethodChannel
- 스위프트 앨범
- 안드로이드 바로가기
- flutter 회전
- 안드로이드 숏컷
- 스위프트 푸시
- 스위프트 UserDefaults
- swift autolayout
- 스위프트 테이블 뷰 셀
- NotificationService Extension
- 플러터 뷰 컨트롤러
- swift sms
- 스위프트
- Flutter UIKitView MethodChannel
- 노티피케이션 익스텐션
- 안드로이드 에러
- Swift flutterview
- 스위프트 웹뷰
- Today
- Total
Things take time
[SWIFT] AutoLayout, 안드로이드의 Visibility Gone과 같은 옵션 사용하기(컴포넌트 삭제(숨김)시 자동 맞춤) 본문
[SWIFT] AutoLayout, 안드로이드의 Visibility Gone과 같은 옵션 사용하기(컴포넌트 삭제(숨김)시 자동 맞춤)
겸손할 겸 2018. 1. 9. 08:57[개요]
안드로이드의 각 컴포넌트에는 visibility란 속성이 있고 그 값에는 visible, invisible, gone 뭐 이런애들이 있다.
그 중 invisible과 gone의 차이는 컴포넌트를 숨길것인지(Invisible), 아니면 숨기면서 해당 차지하는 공간까지를 숨길것인지(Gone)에 대해 정의할 수 있다.
이를 iOS에 대입을 하게 되면
isHidden이란 옵션을 true, false로 하여 가시성에 대한 옵션을 줄 수 있는데, 문제는 Gone에 해당하는 옵션이 속성으로 따로 없다.
아래 예를 보자.
Button1, Button2, Button3 으로 이루어진 뷰가 하나 있다.
로직은 다음과 같다.
버튼2를 누르면 버튼 2는 숨김 옵션이 된다.
1) 숨김처리만 한다 => inVisible
2) 숨김처리를 하면서 버튼3은 버튼2의 자리로 올라온다 => Gone
이것이 숨김처리만 한 경우
이것은 숨김처리와 동시에 버튼2의 자리에 버튼3이 온 것이다.
일반적으로 오토레이아웃을 사용할때는 높이, 너비, 그리고 superview와의 margin을 입력하여, 해상도에 따른 자동 수정이 가능하도록 작성한다.
그런데 기본적으만 작성하는 것으로는 오토레이아웃으로 응용할 수 있는 것이 너무 적다.
결론적으로는 NSConstraint를 Outlet으로 연결하여 해당 값을 조절하면 된다.
Button3의 top은 Button2의 위치에서 50아래로 지정했다.
그렇다면 그 50의 constant값을 조절하면 된다. 이를 스토리보드에서 가져오려면 해당 높이의 값을 소스상으로 가져온다.
이름은 btn2AndBtn3Height라고 지었다.
[코드]
Button2의 액션 이벤트에 아래와 같이 넣자.
@IBAction func button2Clicked(_ sender: UIButton) { button2.isHidden = true btn2AndBtn3Height.constant = 0 - button2.frame.height }
숨김옵션 뿐만이 아니라, 버튼2와 버튼3의 공간의 constant 값을 0으로하게 되면, 버튼2가 사라질때, 버튼3은 버튼2의 밑에 위치하게 된다.
그런데 그 버튼2의 바로 밑에 위치하기 때문에, 버튼3의 위치를 대신하는 것이 아니다. 이런다면 버튼2의 높이 값을 구해서 그 값만큼을 더 - 해버리면 버튼3은 버튼2의 위치를 대신하게 된다.
'iOS (기능)' 카테고리의 다른 글
[SWIFT] 앱 실행시 처음 시작되는 뷰 컨트롤러 지정하기 (0) | 2018.01.16 |
---|---|
[SWIFT] APNS, 푸시에 관한 설정(receive event, click(tap) event) (0) | 2018.01.12 |
[SWIFT] WKWebview 쿠키, 세션, 로컬스토리지 등 웹 데이터 삭제 및 값 얻어오기 (1) | 2017.12.20 |
[SWIFT] 동영상 플레이어(AVPlayer)로 동영상 재생하기 (0) | 2017.12.19 |
[SWIFT] UITableViewCell 커스터마이징 시 주의점 (0) | 2017.12.12 |