210616 Wed

Sunny·2021년 7월 4일
0

Today I Learned

목록 보기
79/88

1. 첫 번째 학습 내용: segmentedControl.selectedSegmentIndex

세그먼트 컨트롤 분기처리 방법 (using Switch 구문)

switch 구문에서

세그먼트 첫번째 케이스 0, 1로 나눠주고 싶은데

그럼 switch에 뭐가 들어가야 될까? 고민했는데

답은 segmentedControl.selectedSegmentIndex였다...!

  • 코드
@IBAction func switchViewsBySegmentedControl(_ sender: UISegmentedControl) {
        switch segmentedControl.selectedSegmentIndex {
        case 0:
            tableView.isHidden = false
            collectionView.isHidden = true
        case 1:
            tableView.isHidden = true
            collectionView.isHidden = false
        default:
            break
        }
    }

Swift - Segmented control - Switch multiple views

  1. 두 번째 학습 내용: URLSession 이용해서 데이타 불러오기 ⭐️
    image를 어떻게 가져와야 할지 모르겠음 😥

해결 방법

            DispatchQueue.global().async {
                guard let imageURL: URL = URL(string: item.thumbnails.first!) else { return }
                guard let imageData: Data = try? Data(contentsOf: imageURL) else { return }
                
                DispatchQueue.main.async {
                    if let index: IndexPath = tableView.indexPath(for: cell) {
                        if index.row == indexPath.row {
                            cell.itemThumbnail.image = UIImage(data: imageData)
                        }
                    }
                }
            }

네트워킹 API, JSON Parsing

  • 메인 스레드로 옮겨주기

3. 세 번째 학습 내용: UIView Animation

Apple Developer Documentation

문제점/고민한점 → 해결방안

Segmented Control 배경색 바꾸기

스토리보드에선 저렇게 Background color를 바꾸면 바로 적용이 되는데

막상 시뮬레이터 돌리면 변화가 없다.

원래 이런건지?

아님 뭔가 잘못한건지?

이유는 모르겠지만

일단 급해서

코드로 뷰디드로드에 다 때려박음 ^.ㅠ

코드로 하니 바로 잘 바뀐다.

segmentedControl.backgroundColor = UIColor.systemBlue

Segmented Control text color 바꾸기

segmentedControl.selectedSegmentTintColor = UIColor.white

TintColor가 텍스트 컬러 아닌가??

안됨

일단 패스

셀 뷰에서 간격 만드는 법

셀이 뷰 왼쪽이랑 위쪽에 너무 딱 붙었는데

spacing을 주고 싶은데

어떻게 하지??


Thanks to 코다 센세 👍

해결 방법: 스택뷰에다가 앵커를 걸어주면 된다.

근데 어케 하는건지 모르겠음... ^.ㅠ

스택뷰는 xib에 있는데

이걸 앵커를 뷰컨에서 해주는건데 컬렉션뷰 swift 파일에서 해줘야 하는건지 흠... ㅜㅜ

이것도 일단 패스

코다가 알려준 다른 방법

이걸로 해주면 위에처럼 앵커 안 걸어줘도 됨

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
        return UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5)
    }

흠..

해봤는데 안됨 ^.ㅠ

profile
iOS Developer

0개의 댓글