https://blog.yagom.net/532
이렇게 스토리보드를 쓰다 보면 경고가 나오는 경우가 있다! 그동안 의미를 잘 모르고, 첫번째 옵션을 고르곤 했었는데, 이번에 제대로 알아보려고 한다. 이 경고 표시는 '우리가 설정한 레이아웃 옵션과 실제 스토리보드의 객체 위치나 크기 등이 일치하지 않을 때 ' 표시된다. Update Frames : 레이아웃 제약 조건을 기준으로 스토리보드를 바꾼다. Update Constraints : 현재 스토리보드상의 위치를 기준으로 레이아웃 제약 요건을 수정한다. Reset to suggested constraints : 컨스트레인트 다 제거하고 추천하는 대로 붙여버린다 Apply to all views in container : 이 옵션 체크하면 선택한 옵션이 VC내 모든 뷰에 적용, 안하면 경고 뜬 뷰만.
Xcode 에서 Editor > Canvas > Show Layout Rectangles
Cocoa Touch - Foundation - UIKit - Address Book UI : 앱 내부에서 주소록 열고 데이터 불러오기, 편집 가능 - Event Kit UI Framework : 시스템에 등록되어 있거나, 애플 계정으로 연동된 일정 및 스케줄 정보를 달력 형태로 표현해주는 VC 제공 - Message UI Framework : 메일 박스 기능, 메일 작성하고 전송할 수 있음 - iAd Framework : 광고 넣을 수 있게 해주는 프레임워크 - Game Kit Framework : 애플 게임 센터를 통해서 게임 사용자들 서로 이어주고, 익명 대전 / P2P도 가능 - MapKit Framework : 지도 Media - video - Core Animation - Core Audio ..
1. 사파리 앱 호출하기 2. UIWebView 객체 사용 3. WKWebView 객체 사용 4. SFSafariViewController 실행하기 실무에서 자주 쓰는건 거의 3번의 WKWebView랑 4번의 SFSafariViewController라고 한다!! 카카오톡 내의 브라우저는 WKWebView로 만든거라고 한다. 2번의 UIWebView는 deprecated 되었으니 쓰지 않는것이 좋다. 1번의 사파리 앱을 호출하면, 내가 설정해줄게 없어서 매우 간단하긴 하나 사용자가 앱 밖으로 나가버려서 , 다시 돌아오지 않을 수 있다는 ux적으로 치명적인 단점이 있다. 그래도 빠르게 뭔가 처리하고 싶다면, 좋다.
someLabel.text = "\(int값!)"
** 이 튜토리얼에서는 콘텐트 내용 크기에 맞게 셀 크기가 변하는 테이블 뷰 셀을 만들 예정이다 ** 오토레이아웃을 사용해서 만들 수 있다. 하는 방법 : 1. UI 요소들을 오토레이아웃으로 연결한다 2. 테이블뷰의 rowHeight을 UITableViewAutomaticDimension으로 설정한다 3. estimatedRowHeight을 설정하거나, height estimation delegate method를 구현한다 [예제] 1) AuteurTableViewCell이라는 파일을 만들고, XIB도 만들자. 2) Cell파일에 자동으로 만들어진 함수들 지우고, @IBOutlet weak var bioLabel: UILabel! 이거 추가해주기 3) Main.storyboard에서 cell 클래스 방금..
1. table view 만들고, 0 0 0 0 주기 2. 셀 하나 드래그해서 추가해주기 3. 이미지, 라벨 넣고 다들 간격 15씩 해쥼 이미지는 width, height 정해준다 왼쪽이랑 위쪽만 레이아웃 15씩 준다 라벨은 왼쪽, 오른쪽으로 15해주고 이미지랑 세로로 가운데 정렬 해줌 밑에 라벨은 위왼오아 다 15씩 해준다 4. cell ID값을 expandCell_ID로 해줌 5. !! 놀랍게도 VC 위쪽에 코드 작성해도 된다!! 6. 스토리보드 cell 클래스를 ExpandCell로 설정함. 7. 마우스 오른쪽 드래그 해서 ExpandCell 안에 라벨 연결해줌 8. table view의 data source랑 delegate 채택해줌 numberOfRowsInSection과 cellForRowAt..
UILocalNotification => UserNotifications (iOS 10~) UN으로 시작하는 객체들은 알람처리를 위한 객체 1. UNMutableNotificationContent : 알람 메세지 설정 같은거 2. UNTimeIntervalNotificationTrigger : 몇분 후 ~ 3. UNNotificationRequest : 1와 2를 모아서 알람 객체 만들 때. 4. UNUserNotificationCenter : 실제 발송 담당 - 싱글톤이므로 인스턴스 생성X [AppDelegate.swift에 작성하기] 1) import UserNotifications 2) UNUserNoficationCenter.current()로 시스템에서 제공하는 인스턴스 받아오기 3) .getN..
UIAlertAction(title: "취소", style: .cancel, handler: nil) handler를 쓰고 싶다면, UIAlertAction(title: "취소", style: .cancel, handler:{ (_) in } ) 이렇게 쓰면 아무것도 안쓴 것과 같다! 어떤 내용을 쓰고 싶다면, UIAlertAction(title: "취소", style: .cancel, handler:{ (_) in //여기에 내용 작성 } )
* iOS 8.0 이상부터 사용 가능 알람창 : 가운데 떠있는거 Action Sheet: 밑에 뜨는거 1번이 알람창 2번이 액션시트 알람창은 모달방식이고, 액션시트는 아님 (알람창은 알람창을 직접 안닫으면 다른거 못하는데, 액션시트는 다른부분 터치하면 닫혀버린다) 알람창은 긍정/부정, 허용/비허용같은 사용자의 선택 입력받음 액션시트는 여러개의 항목중에 사용자가 고르게 함. 알람창은 텍스트필드 추가 가능, 액션시트는 안됨 *UIAlertView, UIActionSheet 따로 쓰는 방식은 없어졌으므로 이제는 쓰면 안된다 * preferred style: [ .alert, .actionSheet ] 버튼 타입: [ default, cancel, destructive ] 'default'는 그냥 평범함. ca..
NSLog("어쩌고 저쩌고")
내가 처음으로 뒤로가기를 만들때 스토리보드에서 했던 방식이다 끔-찍.... 저렇게 세그로 연결하면 계속 메모리에 새로운 view controller들이 쌓이는 정말 최악의 문제가 발생한다. 메모리가 새는거다... 그럼 무조건 코드로 뒤로가기를 만들어야되나?? dismiss함수 쓰는거 말고 방법이 없나?? 고민했었는데 스토리보드에서도 뒤로가기 세그를 만드는 방법을 찾게 되었다! 1처럼 함수를 선언해주고 , 2처럼 버튼을 exit으로 드래그해서 만들면 된다.
https://stackoverflow.com/questions/38300702/swift-error-whose-view-is-not-in-the-window-hierarchy-performseguewithide Swift Error: "...whose view is not in the window hierarchy." performseguewithidentifier I want the app to move to the end screen once the last index of the array is reached. This is what I have for the code where "endWorkout" is the modal segue identifier: if (index < workouts2...
이것때문에 여러번 고생했는데, button에 무언가를 set 할때는 set함수를 써줘야 한다. 할당하는것 만으로는 되지 않는다. seeAgainButton.setImage(UIImage(named: "icon_check_active"), for: .normal) 이런식으로!!! .imageView?.image = UIImage ~ 이런식으로 적용하면 안되더라ㅠㅠ 마찬가지로 title 적용할 때도 setTitle로 해야한다.