전체 글 (51) 썸네일형 리스트형 [iOS/Swift] CollectionView, TableView 오류발생 프로젝트 도중 여러 오류가 발생했다.메뉴 CollectionView와 장바구니 TableView 둘 다 오류가 발생 했다.현재 페이징 O 버튼이 원래 3개였는데, 협업 도중 어디서 바뀐지는 모르겠지만 나중에 보니 2개로 되어있었다.블로그를 쓰고 있는 도중 pageControl 부분은 다른 분이 고치셨다고 한다. 하지만 아직 하나 더 남았다.원래 장바구니에 여러개 목록이 추가되어 스크롤이 가능한 상태일 때 장바구니에 메뉴를 추가하면 해당 위치로 스크롤이 자동으로 이동하게 구현했었는데, 어느새 그 기능이 동작안된다. 급하게 지피티를 이용하여 뷰를 작성해서 그런지 다시 고치려하니 코드도 잘 이해안되고 막막하게 느껴진다.CollectionView를 인터넷을 보며 공부하려 했는데 양이 왜이리 많은지 모르겠다.알고.. [iOS/Swift] UIStackView(arrangedSubviews: [ ]) 기존에 StackView에 subView들을 추가할 때 아래와 같이 따로 외부에서 .addArangedSubview()를 이용해 작성했었다.private lazy var scrollContentsVStack: UIStackView = { let stackView = UIStackView() stackView.axis = .vertical stackView.distribution = .equalSpacing stackView.alignment = .fill stackView.spacing = 24 return stackView}()[bookInfoView, dedicationView, summaryView, chaptersView].forEach { scrollCont.. [iOS/Swift] SwiftLint 적용해보기 (error: Sandbox: swiftlint(19427) deny(1) file-read-data) https://github.com/realm/SwiftLint GitHub - realm/SwiftLint: A tool to enforce Swift style and conventions.A tool to enforce Swift style and conventions. Contribute to realm/SwiftLint development by creating an account on GitHub.github.com SwiftLint는 Swift 코드를 일관된 스타일과 규칙을 적용해 주는 라이브러리다.이를 이번 프로젝트에 한번 적용해 보았다. 처음 설치할 때 나는 brew install swiftlint로 Homebrew를 이용하여 다운 받았었다. 설치 후 적용하기 위해서는 Targets -> .. [iOS/Swift] addTarget()과 Objective-C 셀렉터(#selector) 먼저 #selector는 Objective-C 런타임에서 메서드를 동적으로 호출하기 위해 사용하는 것으로, 주로 addTarget(action:for:) 같은 UIKit 메서드에서 버튼 클릭 등의 이벤트를 특정 메서드와 연결할 때 사용된다. 이런건 알고 있었지만 프로젝트 도중 #selector 관련하여 오류가 생겼다. 현재 함수에서 .addTarget() action: 부분에 함수 입력 시 매개변수를 받아, 각 버튼 별로 title과 titleColor, backgroundColor를 바꾸고 싶었다.func addSeriesButtons(_ seriesCount: Int) { for num in 1 ... seriesCount { let seriesButton: UIButton = { .. [iOS/Swift] UIKit 코드베이스 UIView 분리하기 (Unable to simultaneously satisfy constraints...) 오늘은 기존에 파일 한 곳에 전부 작성된 뷰들을 분리하는데 하루를 보냈다.. 아래처럼 뷰를 일단 분리하였다.MVVM을 이용하려고 ViewModel 파일을 임시로 만들었지만, 아직 MVC도 제대로 다룰줄 몰라 튜터님과 상담 후 일단 이번 과제에서는 MVC를 사용하기로 결정했다. 이번에 알게됐는데 View를 나누면 각 View 파일에 아래와 같은 코드를 작성해야 한다고 한다.override init(frame: CGRect) { super.init(frame: frame) configureLayout()}required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented")} CGRect 부분 in.. [iOS/Swift] JSON 파싱, @escaping, Result, Bundle, Completion Handler, Data(contentsof:) 등등 .. 스파르타 부트캠프 Ch 3. 앱 개발 입문 주차 과제로 책 시리즈 앱을 만드는 중이다.책 데이터가 json 파일로 제공이 되어었고, json 파일에 있는 데이터를 가져오기 위한 코드도 제공이 되어있다.아래가 주어진 코드이다.import Foundationclass DataService { enum DataError: Error { case fileNotFound case parsingFailed } func loadBooks(completion: @escaping (Result) -> Void) { guard let path = Bundle.main.path(forResource: "data", ofType: "json") else { .. [iOS/Swift] UIKit 원형 버튼 만들기 (feat. viewDidLayoutSubviews) 원형 버튼을 만들려면 버튼을 만들고 cornerRadius의 값을 맞게 변경해 주면 된다.아래와 같이 버튼의 크기값의 반을 layer.cornerRadius에 넣어주면 원형 버튼을 만들 수 있다.button.layer.cornerRadius = button.frame.width / 2 하지만 해당 코드가 내 뷰에는 적용이 안된다.button.frame.width를 print 해보니 0.0이라는 값이 뜬다.결국 button.layer.cornerRadius = 20 처럼 직접 넣어줘야 했다.왜 그럴까? Grok한테 물어봤다. 현재 코드에선 SnapKit으로 해당 버튼의 width, height 값을 설정해 주었고, 그 코드들은 아래 configureLayout() 함수에 들어있다.그래서 당연하게도 나중에 .. [iOS/Swift] UIKit ScrollView 스크롤이 안되는 오류 (AutoLayout, SnapKit) 왜인지 모르겠지만 세로로 스크롤뷰를 구현하려고 했었는데, 계속 가로로 된다.. 인터넷을 뒤지다 아래 정보를 얻었다. 1. contentView의 constraint는 scrollView 사면에 맞추기 (top, leading, trailing, bottom -> equal to scrollView)2. view에 scrollView를 추가하고, scrollView에 contentView 추가 및 contentView에 뷰를 구성하는 요소들을 추가한다.3. 세로 스크롤뷰의 경우 contentView의 width는 scrollView의 width와 동일하게, 가로 스크롤뷰의 경우 contentView의 height을 scrollView의 height과 동일하게 맞춘다.4. contentView 안에 있는 구.. 이전 1 2 3 4 ··· 7 다음 목록 더보기