일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Realm
- Code
- Xcode
- iOS16
- Notification
- appstore
- IOS
- Archive
- FLUTTER
- Python
- mac
- Session
- 웹뷰
- rxswift
- UIButton
- Apple
- JPA
- 개발자
- darkmode
- Git
- MacOS
- SwiftUI
- window
- Firebase
- Swift
- view
- error
- 한글
- github
- stack
- Today
- Total
목록iOS, Swift/Tip, Bug, Swift Error (32)
EEYatHo 앱 깎는 이야기
lazy var collectionView = UICollectionView( frame: .zero, collectionViewLayout: UICollectionViewFlowLayout().then { $0.estimatedItemSize = UICollectionViewFlowLayout.automaticSize } ) 콜렉션뷰의 FlowLayout에다가 .estimatedItemSize = UICollectionViewFlowLayout.automaticSize 를 해주고, Cell 안에서 AutoLayout을 맞춰주면 된다. 델리게이트에서 Size 줘버리면 그걸로 고정되니까 주의!
URL, Data, FileManager...... 꽤나 많은 삽질을 했지만 간단했다.. 그냥 xcode프로젝트에 에 xml파일 넣어주고, if let path = Bundle.main.url(forResource: "[XML파일이름(확장자 없이)]", withExtension: "xml") { if let parser = XMLParser(contentsOf: path) { parser.delegate = self parser.parse() } } 이거하면 파싱 시작 됩니다. 그럼 델리게이트에서 ... 태그단위로 쭉쭉 뽑혀나옵니다. 간혈적으로 이상하게 뽑힌다거나 \n을 이상하게 처리한다거나 해서 오류처리 빡심..ㅜ
[ NotificationCenter로 백그라운드 감지 ] if #available(iOS 13.0, *) { NotificationCenter.default.addObserver(self, selector: #selector(taskFunc), name: UIScene.willDeactivateNotification, object: nil) } else { NotificationCenter.default.addObserver(self, selector: #selector(taskFunc), name: UIApplication.willResignActiveNotification, object: nil) } [ NotificationCenter로 포그라운드 감지 ] if #available(iOS 13.0..
설정 화면으로 이동할 수 있는 URL 애플에서 설정창으로 이동할 수 있는 URL을 String으로 지원해준다. UIApplication.openSettingURLString 이다. 해당 URL을 open하면 앱의 설정화면으로 이동한다. 관련 애플 문서 Open하는 예시 코드 guard let url = URL(string: UIApplication.openSettingsURLString) else { return } if UIApplication.shared.canOpenURL(url) { UIApplication.shared.opne(url) }
[요약] 버튼.adjustsImageWhenHighlighted = false 그냥 직관적으로는, setImage(이미지, for: .Highlighted) 하면 당연히 될 줄 알았는데.. 그런데 하얀색이 포함된 이미지를 쓸 일이 생겨서 setImage로 했더니, 이미지의 하얀 부분은 회색으로 바뀌는겁니다. 안이쁘게..🤔 그래서 찾아봄 버튼.adjustsImageWhenHighlighted = false 하믄 됨 👍 IB에는 저~아래, Drawing 탭에 있돠 관련 애플 개발자 문서
[ 요약 ] 컨트롤러를 찾아서 그 뷰에 띄우지 말고, Window 위에 띄워라. [ 개요 ] Popup 관리 모듈을 만들때의 일. (PopupManager) 팝업을 띄워주기위해 현재 화면에 보이는 뷰컨트롤러를 찾아야한다고 생각했다. 그래서 구글링해서 찾은 소스. (visibleViewController, selectedViewController, presentedViewController를 활용해 DFS로 찾아준다.) class func topViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? { // return base if let nav = bas..
여태껏 단순히 한방향으로 움직이고, 움직이는 속도를 조절하는 애니메이션만 알고있었다. 그런데 목표지점에 도착한 뒤, 살짝 튕기고 제자리로 돌아오는 일명 스프링 효과가 있었단걸 알았다. usingSpringWithDamping 0.0 ~ 1.0 0.0에 가까울수록 심하게 튕기고, 1.0이면 튕기지 않는다 initialSpringVelocity 0.0 ~ 1.0 0.0에 가까울수록 튕길 때 속도가 빠르다 예시 ) UIView.animate(withDuration: 0.1, delay: 0, animations: { // 일단 밑에 레이아웃하기 위한 버퍼 애니메이션 container.alpha = 1 }, completion: { _ in UIView.animate(withDuration: 0.5, delay..
디자인팀의 요구사항은, 올라왔다가 내려가는 Toast. Frame으로 Animate하는거야 뭐 아주 쉽다. 그런데 Label의 줄 수에 따라 동적으로 높이가 변하는 Toast. 때문에 FrameBasedLayout이 아닌, AutoLayout을 사용한다. AutoLayout Animate로 리서칭을 하였는데, animate 밖에서 Constraint 수정하고, animate 안에서 layoutIfNeeded() 하기? 잘 안되면 setNeedsUpdateConstraints() 하기? 다 필요없다 animate 함수 안에 아래처럼만 해주면 된다. 갓갓 SnapKit.. ( 진작에 SnapKit Animate로 검색할걸 ㅇㄴㅁㄹㄴㅁㅇㅁㄹㅁㄴ ) UIView.animate(withDuration: 1.0, ..