본문 바로가기

ios

(31)
[iOS] UIRefreshControl UIRefreshControl A standard control that can initiate the refreshing of a scroll view’s contents. 뷰를 아래로 당기며 새로고침하는 기능을 추가하고 싶을 때 사용 class UIRefreshControl : UIControl UIButton, UISwitch 처럼 UIControl 을 상속받는다. (타겟-액션 디자인 패턴 활용) When the user drags the top of the scrollable content area downward, the scroll view reveals the refresh control, begins animating its progress indicator, and notifies you..
[iOS] 뷰 회전 관련 작업 : viewWillTransition viewWillTransition(to:with:) Notifies the container that the size of its view is about to change. 뷰의 사이즈가 바뀔 때 호출되는 함수이다. func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) size : 컨테이너 뷰의 새로운 사이즈 coordinator : 사이즈 변화를 관리하는 transition coordinator object (?????) You can use a transition coordinator object to perform tasks that are related to a transit..
[iOS] View의 Life-Cycle (생명주기) 뷰의 상태변화 감지 메소드 뷰가 화면에 보여지는 상태의 변화나, 뷰의 레이아웃에 변화가 생기면 뷰 컨트롤러는 그에 맞는 메소드를 호출한다. 뷰의 Life-Cycle func viewDIdLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메소드 메모리에 처음 로딩될 때 1회 호출되는 메소드로, 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않음 ⬇️ func viewWillAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되고, 화면에 표시되기 직전에 호출되는 메소드 다른 뷰로 이동했다가 되돌아오면 다시 호출되는 메소드 화면이 나타날 때마다 수행해야 하는 작업을 이 함수 안에 구현하면 좋아용 ⬇️ func viewDidAppear(_ animated: Bool) 뷰가 뷰 계층에 추..
[iOS] UIVisualEffectView UIVisualEffectView An object that implements some complex visual effects. class UIVisualEffectView : UIView let visualEffectView: UIVisualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .regular)) 뷰에 블러 효과를 주고 싶을 때 사용하는 클래스! 왼쪽부터 차례로 style을 regular, dark, prominent 로 적용한 화면이다.
[iOS] 디자인 패턴 | Target - Action Target-Action 디자인 패턴 Target-Action 디자인 패턴에서 객체는 이벤트가 발생할 때 다른 객체에 메시지를 보내는 데 필요한 정보를 포함한다. 액션은 특정 이벤트가 발생했을 때 호출할 메소드를 의미하고, 타겟은 액션이 호출될 객체를 의미한다. 이벤트 발생 시 전송된 메시지를 액션 메시지라고 하고, 타겟은 프레임워크 객체를 포함한 모든 객체가 될 수 있지만 보통 컨트롤러가 된다. 직접 타겟이 될 객체에 액션에 해당하는 메소드를 호출하면 될텐데 굳이 타겟과 액션을 지정하고 디자인 패턴으로 활용하는 이유는? 만약 특정 이벤트가 발생했을 때, abc라는 이름의 메소드를 호출해야 하는 상황이라고 가정해보자. 그런데 이 abc라는 (액션)메소드는 A라는 클래스에도, B라는 클래스에도 정의되어 있..
[iOS] 디자인 패턴 | Singleton 싱글턴 (Singleton) 싱글턴은 특정 클래스의 인스턴스가 오직 하나임을 보장하는 객체를 의미합니다. 싱글턴은 애플리케이션이 요청하는 횟수와는 관계없이, 이미 생성된 같은! 하나의! 인스턴스를 반환한다. 즉, 앱 내에서 특정 클래서의 인스턴스가 딱 하나만 있기 때문에 다른 인스턴스들이 공유해서 사용할 수 있다. ➡️ 앱 내에서 공용으로 사용되는 인스턴스 임의로 메모리에서 해제해주지 않는 이상 프로그램이 실행되고 끝날 때까지 메모리에 유지된다. class UserInfo { static let shared: UserInfo = UserInfo() var ID: String? var age: Int? private init() { } } static let : let 으로 상속을 금지하고 있으며, sta..
[iOS] UIActivityIndicatorView UIActivityIndicatorView A view that shows that a task is in progress. 어떠한 작업이 진행 중임을 나타내는 뷰 (로딩 중 아이콘이라고 생각하면 됨 ! 실제로 데이터가 로드되기 직전까지 animating 하다가 로드 되면 stop, hide) class UIActivityIndicatorView : UIView // style : large, medium init(style: UIActivityIndicatorView.Style) func startAnimating() func stopAnimating() // 애니메이션이 멈췄을 때 뷰를 hidden 처리해 줄 것인지를 결정 var hidesWhenStopped: Bool { get set }
[swift] ARC | 약한참조 (weak) 약한참조 (weak) 약한참조 (weak) 는 강한참조와 달리 자신이 참조하는 인스턴스의 참조 횟수를 증가시키지 않는다. 참조 타입의 프로퍼티나 변수의 선언 앞에 weak 키워드를 써주면 그 프로퍼티나 변수는 자신이 참조하는 인스턴스를 약한참조한다. 약한참조를 사용한다면 자신이 참조하는 인스턴스가 메모리에서 해제될 수도 있다는 것을 예상해볼 수 있어야 한다. 자신이 참조 횟수를 증가시키지 않았기 때문에 그 인스턴스를 강한참조하던 프로퍼티나 변수에서 참조 횟수를 감소시켜 0으로 만들면, 자신이 참조하던 인스턴스가 메모리에서 해제되기 때문이다. 약한참조와 상수, 옵셔널 약한참조는 상수에서 쓰일 수 없다. 만약 자신이 참조하던 인스턴스가 메모리에서 해제된다면 nil이 할당될 수 있어야 하기 때문이다. 또한 n..