[내일배움캠프 2일차] 팀 소개 미니 프로젝트2

NH·2025년 3월 4일

내일배움캠프

목록 보기
2/62
post-thumbnail

🫂 팀 소개 미니 프로젝트

Github

  • 팀 github repo 생성 완료
  • fork 라는 형상관리 도구 사용 결정
  • 팀 github repo 개인 repo로 fork
  • fork 툴을 사용한 팀 repo로 pr 하는법 습득

개발 시작

오늘의 결과

  • 기획안

  • 개발 결과

  • 기획안

  • 개발 결과

겪은 문제들

해결한 문제

1. TableView에서 cell 간 간격 주기

  • 해결한 방법
    • TableView에서는 도저히 방법을 몰라서 CollectionView로 변경해서 진행했다.
    • CollectionView에서는 UICollectionViewDelegateFlowLayout를 사용하여 cell 간 간격을 주었다.

2. UIButton 배경색이 바로 적용 안되는 현상

  • 해결한 방법
    • 스토리보드에 있는 인스펙터로 배경색을 설정 시, 앱이 실행되고 버튼을 눌러야 설정한 배경색으로 변경되었다.

    • 코드로 버튼 배경색을 지정 후 해당 현상은 사라졌다.

    • 사용한 코드

      // 버튼 색 변경 함수
      func buttonColorChange(_ sender: UIButton, color: String) {
         sender.tintColor = UIColor(hexCode: color)
      }
      
      buttonColorChange(matchingButton, color: "FFD371")

3. UILabel 에서 특정 문자만 Bold 처리하기

  • 해결한 방법
    • 코드를 사용하여 해결

      extension UILabel {
         /// 특정 문자열을 볼드 스타일로 적용하는 함수
         func setAttributedText(fullText: String, boldTexts: [(String, UIFont)]) {
             let attributedString = NSMutableAttributedString(string: fullText)
            
             for (boldText, font) in boldTexts {
                 if let range = fullText.nsRange(of: boldText) {
                     attributedString.addAttribute(.font, value: font, range: range)
                 }
             }
            
             self.attributedText = attributedString
         }
      }
      
      extension String {
         /// 특정 문자열을 NSRange로 변환하는 확장 함수
         func nsRange(of substring: String) -> NSRange? {
             guard let range = self.range(of: substring) else { return nil }
             return NSRange(range, in: self)
         }
      }
    • 코드를 찾아서 해결했으나, 아직 이 코드로 왜 구현되는지는 모른다.

    • 향후 코드분석이 필요

4. 셀 선택 시, 하이라이드 하기

  • 해결한 방법
    • 코드를 사용하여 해결
      override var isSelected: Bool {
             didSet {
                 self.layer.borderWidth = isSelected ? 2 : 0
                 self.layer.borderColor = isSelected ? UIColor.orange.cgColor : nil
             }
         }
    • 코드를 찾아서 해결했으나, 아직 이 코드로 왜 구현되는지는 모른다.
    • 향후 코드분석이 필요

아직 해결 못한 오류

1. Auto Layout

오늘의 회고

  • 시간이 턱 없이 부족했다.
  • 쉬워 보였던 내 파트는 사실 어려웠다!!
  • 이렇게 작은 미니 프로젝트를 시작하자마자 나의 부족함을 너무 절실히 알게되었다.
  • 오늘 개발하면서 오류들을 겪었고, 해결을 해보았으나 아직 특정 코드가 어떻게 동작하는지 이해못한것들이 너무 많다..
  • 그래도 매일매일! 배운것들을 정리하면서 성장하겠다!!
profile
iOS 개발 블로그

0개의 댓글