Swift/UIKit
-
[UIKit] CollectionView의 contentSize는 언제 할당 되는가? : view 가 그려지고 layout이 계산 되는 순서Swift/UIKit 2022. 7. 22. 16:47
호출 순서 1. viewDidLoad { print(collectionView.collectionViewLayout.collectionViewContentSize.height) } -> 0.0 2. viewWillAppear { print(collectionView.collectionViewLayout.collectionViewContentSize.height) } -> 0.0 3. viewWillLayoutSubViews { print(collectionView.collectionViewLayout.collectionViewContentSize.height) } -> 0.0 4. viewDidLayoutSubviews { print(collectionView.collectionViewLayout.col..
-
[UIKit] collectionView를 dynamic height로 구현해보자Swift/UIKit 2022. 7. 22. 00:51
final class UserViewController: UIViewController { private let feedCollectionView: UICollectionView = { let surfaceLength = UIScreen.main.bounds.width / 3 let layout = UICollectionViewFlowLayout() layout.estimatedItemSize = CGSize(width: surfaceLength, height: surfaceLength) layout.minimumLineSpacing = 0 layout.minimumInteritemSpacing = 0 layout.sectionInset = UIEdgeInsets(top: 0, left: 0, botto..
-
[UIKit] UIImageView에 반투명 효과 줘보자 : CIFilterSwift/UIKit 2022. 7. 17. 22:20
iOS ) UIImageView에 CIGaussianBlur를 적용했더니.. 안녕하세요 :) Zedd입니다. 오늘은..CIGaussianBlur를 사용하는 과정에서 제가 겪은....트러블슈팅 기록 글입니다! UIBlurEffect로 Blur효과를 낼 수도 있지만, 내가 하고싶은 Blur에는 CIGaussianBlur를 사용하는 zeddios.tistory.com Apple Developer Documentation developer.apple.com
-
[UIKit] identifier 쉽게 써보자 : extensionSwift/UIKit 2022. 7. 13. 00:51
UIKit을 공부해보니 class 이름을 identifier로 반환해줘야하는 일이 많다 그래서 보통 class 내부터 property로 선언을 해서 string을 넣어주곤 하는데 그렇게 하면 번거롭거니와 혹시라도 string값을 실수로 class 명과 다른걸 넣어놓으면 좀 골치 아파질거 같다. 그래서 이런식으로 extention을 만들어서 접근하면 틀일이 없이 알아수 반환해주고 class 마다 내부에 property 만들어주는 번거로운일도 사라진다. extension UICollectionViewCell { static var identifer: String { String(describing: self).components(separatedBy: ".").last! } }
-
[UIKit] tableView 밀어서 특정 행동하기 : leadingSwipeActionsConfigurationForRowAt, trailingSwipeActionsConfigurationForRowAtSwift/UIKit 2022. 7. 11. 22:12
iOS Swift 테이블뷰 스와이프 버튼 만들기 (TableView swipe button) 땡겨서 나오는 버튼을 만들어보겠습니다. 왼쪽, 오른쪽 가능 UITableViewDelegate 을 상속 받으신 후에 만들고 싶은 방향 매서드를 써주세요. func tableView(_ tableView: UITableView, trailingSwipeActionsCon.. gonslab.tistory.com
-
[UIKit] UITableView의 cell을 옆으로 밀어서 없애보자 : UITableViewCell.EditingStyleSwift/UIKit 2022. 7. 8. 16:59
1. UITableViewDelegate 을 상속받고 2. UITableViewCell.EditingStyle 라고 된 tableView 함수를 불러온다 3. 인자로 받은 editingStyle 은 아래 보는 거와 같이 delete 라는 속성으로 Int 값을 가지고 있다. 이걸 사용해서 switch editingStyle 을 case 돌려서 .delete일 경우 화면에 뿌려주는 data 에서 선택된 data를 지워주면 된다
-
[UIKit] 순환참조를 피해보자 : [weak self], [unowned self]Swift/UIKit 2022. 7. 8. 16:44
weak 은 무엇이고 순환참조(retain cycle) 은 무엇 일까? [Swift] 메모리 관리를 위한 약한 참조 : weak 1. 원래 Swift는 메모리에 올리고 내리는걸 직접 해줘야 했다 2. 하지만 ARC (Automatic Reference Counting) 라는걸 통해 더 이상 변수의 값을 쓰지 않으면 자동으로 메모리에서 내려준다 3. 기본적으로 var insubkim.tistory.com You don’t (always) need [weak self] 순환참조(Retain Cycle)를 피하기 위해 Swift 클로저 내부에서 weak self를 사용하는 방법에 대해 이야기하고, weak self가 필요할 수도 있고 필요하지 않을 수도 있는 경우에 대한 글. velog.io [Swift] C..
-
[UIKit] 후행 Closure 를 통해 결과에 따라 다른 행동을 하게 해주자 : completion, @escapingSwift/UIKit 2022. 7. 8. 15:18
실행될 함수이다. query(검색어)를 받고 youtube api에 요청을 보내어 결과를 받아오는 함수이다. api request의 결과 값에 따라 completion을 통해 함수가 끝나고 다른 행동을 해줘~ 라고 result를 보낼수 있다. try catch를 통해 request가 성공하면 completion(.success())를 통해 성공했다고 알려준다 실패하면 completion(.failture())을 통해 error을 던져준다. (Result 로써 VideoElement 넘겨주거나 Error 를 넘겨주게 된다.) 아래는 위에 함수를 호출 하는 코드이다. 후행 Closure를 통해 받아온 result를 실행해준다. result가 .success 일 경우.... result가 .failure 일 ..