IOS (16) 썸네일형 리스트형 [iOS - UIKit] ScrollView에서 Button 클릭 시 화면의 최상단, 최하단 이동 오늘은 ScrollView를 사용할 때에 페이지의 내용이 많아 스크롤이 길어지게 되면 어플 안의 버튼을 터치함으로써 최상단 또는 최하단으로 가는 구현 방법을 알아보려고 한다. 구현 방법 ViewController에서 UIScrollViewDelegate 채택 ScrollView를 스크롤하게 되면 x, y축이 변하게 된다. button을 클릭했을때 event를 x, y축이 (0, 0)이 되도록 한다. 코드 class ViewController: UIViewController,UIScrollViewDelegate { // code } 방법 1 - 최상단 이동 @objc func scrollToTop(_ sender: UIButton) { collectionView.scrollToItem(at: IndexPa.. [iOS - Swift] Final 키워드 Swift에서는 클래스의 상속을 지원한다. 상속 Swift는 객체지향형 프로그래밍을 다룰 수 있는 언어이다. 객체지향프로그래밍의 특징은 추상화, 캡슐화, 은닉화, 상속성, 다형성이 있는데 그 중에서 상속성은 상위 개념의 특징을 하위 개념이 물려 받아서 사용하는 것이다. 즉, 부모-자식 간의 개념을 생각하면 된다. final 언제 사용함??🧐 더 이상 해당 클래스에서 하위 클래스로의 전체 클래스 또는 일부가 상속 또는 상속에 따른 재정의가 될 필요가 없다고 판단한 경우 final 키워드를 요소 앞에 추가함으로써 상속을 방지한다. final은 ‘마지막’, ‘유일한’ 이라는 의미를 가진다. 즉, 클래스 앞에 final을 붙이면 해당 클래스는 ‘상속할 수 없는 클래스’ 라는 의미를 가지게 된다. 마찬가지로, 함.. [iOS - Swift] Any, AnyObject의 차이점은? Swift는 다양한 데이터 타입들이 있다. 보통 기본적인 프로그래밍 언어 C, Python, Java에서 쓰이는 Int, Double, Float, String, Bool, Array등 정말 많다. 하지만 내가 처음 Swift를 공부할 때 낯선 데이터 타입이 있었다. 바로 Any와 AnyObject 이다. Python에서는 object 타입과 비슷하고 C#에서도 object 타입과 비슷하다. 오늘은 Swift에서의 Any와 AnyObject의 차이점을 알아보겠다. Any 스위프트의 모든 타입을 나타내는 일반적인 타입이다. 모든 타입의 인스턴스를 나타낼 수 있다. AnyObject 모든 클래스 타입의 인스턴스를 나타낼 수 있다. AnyObject는 타입이 아니라 '프로토콜' 이다. 스위프트의 모든 클래스는.. [iOS - Swift] 옵셔널(Optional)에 대하여, 옵셔널 추출, 옵셔널 바인딩(Optional Binding), 옵셔널 체이닝(Optional Chaining) 옵셔널(Optional) 이란? 옵셔널이란 값이 있을 수도 있고, 없을 수도 있는 것이다. 일반적인 프로그래밍 언어에서는 값이 null 인 변수에 접근하면 프로그램이 종료된다. 하지만, swift에서는 옵셔널을 사용하면 값이 없는 변수에 접근해도 프로그램이 종료되지 않는다. 옵셔널(Optional) 을 사용하는 이유 값이 없는 데이터 공간에 접근하려고 하면 에러가 발생한다. 값을 초기화하지 않았기 때문에 메모리에 값이 저장되어 있지 않을 것이다. 혹은, ‘쓰레기 값’이 저장되어 있을 것이다. 코드로 간단하게 예시를 들어보겠다. var name : String print(name) 위의 예시를 실행시켜보면 에러가 발생할 것이다. 왜냐면 name에는 아무런 값이 있지 않기 때문이다. 그럼 앱이 꺼지지 않게 .. [iOS - Swift] is, as 타입 캐스팅 (업 캐스팅, 다운 캐스팅) 앱을 개발하다 보면 is, as, as!, as? 와 같이 같은 듯 다른 문법을 본 적이 있을것이다. 우리는 이걸 타입 캐스팅 이라고 하는데 어떤 것들이 다른지 정확히 짚고 넘어가기 위해 글을 작성하게 되었다. 타입 캐스팅 (Type Casting) 변수나 상수의 타입을 다른 타입으로 변경하는 것을 말한다. 인스턴스의 타입을 확인하거나, 인스턴스를 같은 계층에 있는 다른 슈퍼 클래스(상위)나 서브 클래스(하위)로 취급하는 방법이기도 하다. 타입 캐스팅은 is 와 as 연산자를 사용한다. is 연산자 특정 인스턴스의 타입을 확인하는 연산이다. 반환 타입은 Bool이다. let mystr : String = "Kimgahyun" mystr is Character // false mystr is String .. iOS - Delegate Pattern (델리게이트 패턴) 간단한 앱을 만드는 공부를 하던 중에 "델리게이트 패턴"이 지속적으로 언급되며 사용하길래 자세히 짚고 넘어가고 싶어 글을 쓰게 되었다. Delegate Pattern 델리게이트 패턴은 iOS에서 사용되는 여러 디자인 패턴 중 하나이다. 객체들 사이의 상호작용을 구현하는 방법이다. delegate는 사전적 의미로 '대리자', '위임자' 라는 의미를 가지고 있다. 델리게이트 패턴을 사용하면 하나의 객체가 다른 객체에게 자신의 일부 기능을 대신 처리하도록 위임(delegate)할 수 있다. 쉽게 말해, A가 B에게 특정 이벤트가 발생하면 해당 이벤트를 처리하는 책임을 B에게 위임하는 것을 의미한다. Delegate Pattern 예시 이해가 잘 되지 않는다면 실생활로 예를 들어보면 된다. 소프트웨어학과는 MT.. 이전 1 2 3 다음