티스토리 뷰
안녕하세요 :) Zedd입니다.
제목을...이렇게 밖에 지을 수가 없었는데
< UIButton/UILabel에 이미지 추가 >글을 제가 얼마전에 썼었는데요,
이렇게 줘버리면...크나큰 문제가 하나 있습니다.
바로 디바이스별 화면 대응?을 못한다는 것이죠. 예를 하나 들어볼께요.
자..이렇게 하고...아이폰 8+로 실행해볼게요.
(스토리보드 상에서는 하트가 오른쪽 끝에 가있는데, 아이폰 8+에선는 그렇지 않은 이유는....스토리보드상에서는 아이폰8이기 때문)
그런데...아이폰 SE에서는...!
이렇게 나오게 되죠.
이유는 간단하죠? 우리가
이렇게 물리적인? 값으로 줬기 때문입니다. 저 이미지는 항상 titleLabel과 저 상수값만큼 떨어진 곳에 위치하게 되죠.
그럼?? 이 상수값을 디바이스 마다 다르게 주면 되겠죠?!?!?!? XD
이걸 어떻게 할지 생각해봅시다.
일단...저는 오른쪽 끝에!!! 놓을 생각인데..
저 길이를 어떻게 구하면 될까요?
제가 생각하기엔
전체 View넓이 - (leading constant + trailing constant + 버튼 타이틀 Label의 너비)가 될 것 같아서...
1 2 3 4 5 | func setupImageInset(){ guard let buttonTitle = myButton.titleLabel else {return} buttonTitle.sizeToFit() myButton.imageEdgeInsets.left = self.view.frame.width - 32 - buttonTitle.frame.width } | cs |
이렇게 했어요 32를 빼준거는...
그 리딩이랑 트레일링 constant구하는게 조금 코드가 더러워서 그냥 값으로..줬어요!
이렇게 하면..
SE나 8+에서 이쁘게 잘 나오는 것을 볼 수 있죠. 흐흐
별거 없죠!?!?!?
제 코드도 조금 음...별로 안좋은 코드일거라고 생각하시는 분들도 있을지도 모르겠어요..! 오토레이아웃 constant를 직접 빼줘서 ㅠㅠㅠ 혹시 지적하실 부분이나 개선할 수 있는 점을 알려주시면 감사하겠습니다 :)
즐거운 주말 보내세요 XD
'iOS' 카테고리의 다른 글
iOS ) CAEmitterCell 프로퍼티 정리 (0) | 2018.02.17 |
---|---|
iOS ) shouldChangeCharactersIn range / NSRange (3) | 2018.02.16 |
iOS ) UIButton / UILabel에 이미지추가 (1) | 2018.02.03 |
iOS ) UIActivityViewController에 "Safari로 열기"추가 (2) | 2018.01.22 |
iOS ) Gesture Recognizer - Long Press (0) | 2018.01.16 |
- WKWebView
- fastlane
- swift 공부
- IOS
- Git
- Swift
- 피아노
- 스위프트
- 회고
- actor
- iOS delegate
- 제이슨 파싱
- Combine
- Xcode
- np-complete
- swift array
- swift sort
- ios 13
- WidgetKit
- WWDC
- SwiftUI
- np-hard
- swift delegate
- swift3
- Accessibility
- github
- 스위프트 문법
- FLUTTER
- UIBezierPath
- swift tutorial
- Total
- Today
- Yesterday