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
해결 방법
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)
}
}
}
}
스토리보드에선 저렇게 Background color를 바꾸면 바로 적용이 되는데
막상 시뮬레이터 돌리면 변화가 없다.
원래 이런건지?
아님 뭔가 잘못한건지?
이유는 모르겠지만
일단 급해서
코드로 뷰디드로드에 다 때려박음 ^.ㅠ
코드로 하니 바로 잘 바뀐다.
segmentedControl.backgroundColor = UIColor.systemBlue
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)
}
흠..
해봤는데 안됨 ^.ㅠ