728x90
반응형

[Review] (8주차) 실습

2022.08.26 - [Development/Swift] - [Swift] iOS 앱 개발(Xcode) Byte Degree - week.08

 

[Swift] iOS 앱 개발(Xcode) Byte Degree - week.08

[Review] (7주차) 실습 2022.08.25 - [Development/Swift] - [Swift] iOS 앱 개발(Xcode) Byte Degree - week.07 [Swift] iOS 앱 개발(Xcode) Byte Degree - week.07 [Review] (6주차) 실습 2022.07.22 - [Develop..

sarahee.tistory.com


지금까지 구현한 내용

1) 각 탭 구성

2) 탭 별 다른 내비게이션 아이템 설정

3) Home의 Search, Feed, List 등 모두 구성

4) 서버로부터 받은 내용으로 List 구현

앞으로 구현할 내용

Detail view 구성


DetailViewModel.swift 및 ItemInfoDetails.swift 생성

 

HomeViewController에서 viewModel 설정

vc.viewModel = DetailViewModel(network: NetworkService(configuration: .default), itemInfo: item)
collectionView.delegate = self

extension HomeViewController: UICollectionViewDelegate {
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let item = viewModel.items[indexPath.item]
        viewModel.itemTapped.send(item)
    }
}

디자인 라벨 등 구성(완료)

코드 수정 방법

option key를 누르고, 커서 드래그 이후 좌우 방향키 이용하여 사용하지 않는 코드 삭제(혹은 생성 가능)

    // User
    @IBOutlet weak var userThumbnail: UIImageView!
    @IBOutlet weak var userNickName: UILabel!
    @IBOutlet weak var userLocation: UILabel!
    @IBOutlet weak var userTemperature: UILabel!
    
    // Item
    @IBOutlet weak var itemThumbnail: UIImageView!
    @IBOutlet weak var itemInfoTitle: UILabel!
    @IBOutlet weak var itemInfoDescription: UILabel!

KingFisher import하여 image 적용

상세뷰 우측 상단에 아이콘 삽입

DetailViewController의 viewDidLoad 함수에 configureNavigationBar() 추가

    override func viewDidLoad() {
        super.viewDidLoad()
        configureNavigationBar()
        bind()
        viewModel.fetch()
    }

Editor > Edit All in Scope (control + command + E)

가격 라벨 추가

@IBOutlet weak var itemPriceLabel: UILabel!

self.itemPriceLabel.text = "\(self.formatNumber(details.item.price))원"

extension DetailViewController {
    private func formatNumber(_ price: Int) -> String {
        let formatter = NumberFormatter()
        formatter.numberStyle = .decimal
        let result = formatter.string(from: NSNumber(integerLiteral: price)) ?? ""
        return result
    }

중간에 separate line 추가하여 완료

상세 오류 수정 #1

문제: 내용(Item Info Description)이 두 줄밖에 보이지 않는 현상

해결: Label Lines: 2 → 0 설정

상세 오류 수정 #2

문제: Detail View의 스크롤이 되지 않는 현상

Align Top to: Safe Area Equals: 44 삭제 및 Stack View 확인

Horizontal - Trailing/Leading Space to: Superview

Vertical - Bottom/Top Space to: Superview

설정하여 해결, 첫번째 내비게이션 바 완성

 

728x90
728x90

+ Recent posts