본문 바로가기

#iOS

[iOS] change TableHeaderView height dynamically with autolayout TableHeaderView에 높이가 바뀌었을 경우 해당 뷰 높이를 갱신 하더라도 TableHeaderView의 영역이 변하지 않아 어려움을 겪으신 분들은 아래 소스를 참조해보세요. 123456789101112if let headerView = tableView.tableHeaderView { let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height var headerFrame = headerView.frame //Comparison necessary to avoid infinite loop if height != headerFrame.size.height { headerFrame.size.height = h.. 더보기
[Android][iOS] AccessToken을 어떻게 관리 할까?? 앱 개발 하실 때 대부분 OAuth2.0을 따라 진행 하실 겁니다. OAuth 인증에 따라 서버에서 AccessToken 을 받아 어떻게 관리하시는지?? Android 경우 AccountManager를 통하여 저장 관리참조 : http://blog.udinic.com/2013/04/24/write-your-own-android-authenticator/ iOS 경우 KeyChain에 저장 관리 참조 : https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html 꼼꼼한 재은씨의 스위프트 실전편 (책) - 8장 참고 위와 같은 형태를 많이 .. 더보기
[iOS] 'command + =' 단축키 UILabel을 스토리 보드에 추가 하고 "시작하기" 라고 타이틀을 변경 하면 Width 사이즈는 고정이 되어 있기 때문에 위와 같이 보이게 된다. 그럼 마우스를 통해 임의로 늘리는 데요.간단한 단축키 하나라 글자에 맞게 크기가 자동으로 변경 됩니다. Command + '=' 결과는 아래와 같습니다. 참고하세요. 더보기
[iOS] Get image with actionsheet private func actionSheetPicker() {let alert = UIAlertController(title: nil, message: "이미지를 가져올 곳을 선택해주세요.", preferredStyle: .actionSheet) let cameraAction = UIAlertAction(title: "카메라", style: .default, handler: {action in self.pickImage(.camera)})let albumAction = UIAlertAction(title: "저장앨범", style: .default, handler: {action in self.pickImage(.savedPhotosAlbum)})let photoLibraryAction = UIAlert.. 더보기
[Android] 내가 생각 하는 VIPER Pattern http://bartysways.net/?p=690 VIPER는 아키텍처 디자인 패턴이다.위 그림의 형태를 가장 많이 봐 온 것 같다. VIPER에 대해 조금만 검색 하면 엄청나게 많은 글들을 볼 수가 있다.여기서는 내가 Android 아키텍처를 구성할 때 생각하는 VIPER 패턴 형태를 공유하고자 한다. ## VIPER : View, Interactor, Presenter, Entity, Router View : View(CustomView), Fragment Interactor : Realm, Retrofit등 Presenter : Listener, Callback, Protocol등 Entity : Models Router (Wireframe) : Activity (iOS는 ViewControlle.. 더보기
[iOS] UIScrollView 이동 import Foundation extension UIScrollView { // Scroll to a specific view so that it's top is at the top our scrollview func scrollToView(view:UIView) { if let origin = view.superview { // Get the Y position of your child view let childStartPoint = origin.convert(view.frame.origin, to: self) let bottomOffset = scrollBottomOffset() if (childStartPoint.y > bottomOffset.y) { setContentOffset(bottomOf.. 더보기
[iOS] Use UILabel in UIScrollView with Autolayout UILabel 에 표시할 텍스트 값이 길어질 경우, Scroll을 이용하기도 한다.이럴 경우 UITextView를 이용하면 쉽게 제어가 가능하다. 하지만, UITextView를 사용할 경우 텍스트 세로 정렬이 힘들다.기본적으로 Scroll이 할당되어 있어서 그런 듯 하다. 만약, 텍스트가 짧을 경우는 가운데에 표시 하고텍스트가 길어질 경우 스크롤로 보여주고 싶을 경우는 어떻게 하는게 편할까?? 여러 테스트를 해본 결과, 전 UILabel을 UIScrollView로 감싸는 형태로 했다. 아래가 설정이 가장 중요하다! 1. ScrollView와 Label Bottom을 일치 시킨다. (완전히 일치 시킬 필요는 없ㄷ가.)2. ScrollView와 Label의 Height를 '>=' 로 설정 한다. 혹시 필요하.. 더보기
[iOS] UITextView Scroll to top UITextView를 로드 하고 나서 보면 Scroll이 생성되는 것 까지는 좋지만,하단에 위치 되는 문제점이 발생한다. 그래서 Scroll을 Top으로 이동시키고자 할 경우 여러가지 방법이 있지만 저같은 경우 아래 방법으로 하는 편이 직관적이고 동작도 원활하게 이루어 졌다. let contentHeight = uiTextView.contentSize.height let offSet = uiTextView.contentOffset.x let contentOffset = contentHeight - offSet uiTextView.contentOffset = CGPoint(x: 0,y: -contentOffset) Content 실제 높이 값으로 Offset을 이동 시키는 소스이다.참고하세요. 출처 : h.. 더보기