iOS/Did
-
UITableViewCell의 UICollectionView 데이터 값 전달하기iOS/Did 2020. 5. 26. 22:30
이렇게 하는게 맞는지 모르겠다.. 일단 하나의 UITableViewCell에 UICollectionView가 들어있고, 그 UICollectionView의 Cell을 클릭했을 때 다음 화면으로 이동과 동시에 값을 전달해야했다. 여기서 내가 몰랐던 것은 어디서 delegate를 어디에 선언해야하는 것인가..... delegate를 잘 모른 것도 나의 헤멤에 큰 보탬이 되었다. 결론적으로 다음과 같이 cell에 collectionView를 담을 때 넣으면 된다. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let cell = testTableView.dequeueReus..
-
Error) Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle:iOS/Did 2020. 3. 30. 11:44
팝업뷰를 xib로 만들고는 버튼에 연결해서 띄우려고 하니 다음과 같은 에러 메시지가 떴다. 나같은 경우는 만들어둔 xib에서 Target Membership에 사용하는 라이브러리 체크가 안되어 있어서였다. 해당 스토리보드 xib > 파일 인스펙터(file inspector) > Target Membership > 사용하는 라이브러리 체크 를 하면 해결되었다.
-
Error) Unexpected duplicate tasksiOS/Did 2020. 3. 30. 11:01
A 프로젝트 Storyboard에서 만들었던 View를 B프로젝트에서도 사용하려고 Ctrl+C Ctrl+V해서 빌드를 하면 위의 에러가 떴다. 이것저것 찾아보다가 Pods > Bulid Phases > Targets: 라이브러리 이름 선택 (위에 에러메시지에서 뜬 Target "라이브러리 이름") > Copy Bundle Resources > Main.storyboard가 있는지 확인 있다면 - 버튼을 눌러서 삭제하고 Clean 한 후에 다시 빌드하면 정상 작동하게 됨. 스토리보드 View를 복붙하게 되면 자동으로 Copy Bundle Resources에 추가되서 이중으로 인식되어 생기는 에러인 것 같다.
-
round corner 한쪽 모서리만 설정하기iOS/Did 2020. 3. 17. 14:05
UIView에서 한쪽 모서리만 round하도록 만들어야 하는데.. myView.layer.cornerRadius = 5 이렇게 하면 다음과 같이 네 모서리가 다 둥글게 나옴..ㅠㅠ 위쪽 상단만 둥글게 하고싶다면 다음 코드와 같이 UIView를 설정해두면 된다. class RoundView: UIView { @IBInspectable var cornerRadius: CGFloat { set(newValue) { self.layer.cornerRadius = newValue self.layer.masksToBounds = true self.layer.maskedCorners = [.layerMaxXMinYCorner] } get { return self.layer.cornerRadius } } } 다른 모서..
-
사진 Exif에서 날짜 데이터 가져오기iOS/Did 2020. 3. 10. 15:09
사진의 create date를 가져와야해서 방법을 찾아보았다. (다운받은 사진은 뭔가 다른방법이 필요한 것 같다..ㅠ) 원래는 imagePickerController delegate method의 info를 이용하여 다음과 같이 create date를 구할 수 있다. 그런데 phAsset 키가 안보인다...(기존에는 info[UIImagePickerControllerPHAsset] as? PHAsset로 사용했었는데..) func getCreateDate(by info: [UIImagePickerController.InfoKey : Any]) -> Date? { guard let asset = info[.phAsset] as? PHAsset else { return getExifDate(by: info)..
-
UITableView Paging 처리iOS/Did 2020. 3. 3. 15:04
테이블 뷰에서 한꺼번에 데이터를 받아오는 것이 아니라 10개씩 데이터를 받아오고, 마지막 row가 되면 새로운 10개의 데이터를 받아오는 Paging 처리가 필요해서 만들게 되었다. (이렇게 만드는 것이 맞는지는 잘 모르겠다.....) tableView cellForRowAt delegate method에서 마지막 행인지를 체크한다. (isLastestRow(row:)) 그리고 데이터를 추가하고 테이블뷰를 reload하도록 한다. func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let cell = titleTableView.dequeueReusableCell(withId..
-
NavigationBar 아래 라인 생성 및 삭제iOS/Did 2020. 3. 1. 23:30
앱을 개발하다보면 필요에 따라 NaviationBar 아래에 구분선을 지우고 싶을 때가 있다. 기본 default값으로 구분선이 들어가 있는데, 이를 지울 때는 viewDidLoad()에 다음과 같이 설정해주면된다. self.navigationController?.navigationBar.shadowImage = UIImage() 만약 이전 뷰에서 구분선이 없었는데, 현재의 뷰에서는 구분선을 생성해야할 때는 다음과 같이 설정해주면 된다. (nil이 default 값이기 때문) self.navigationController?.navigationBar.shadowImage = nil 특별한 shadowImage를 원한다면, 다음 이미지처럼 UIImage()에 적절한 이미지를 넣어 수정할 수 있다. self...
-
TableView에서 TextView 자동 높이 조정iOS/Did 2020. 3. 1. 19:59
TableViewCell 안에 textView를 두고 데이터를 출력하던중.. 내가 원하던 뷰가 아님을 발견하였다. 아래 그림들 중 왼쪽이 내가 생각한 것, 오른쪽이 현실... textView 높이는 데이터를 textview에 넣으면서 알 수 있기에.. 아래 코드와 같이 오토 리사이징이 필요하다는 설정을 코드에서 해줘야했다. translatesAutoresizingMaskIntoConstraints와 sizeToFit()를 사용하여 문제 해결 extension UITextView { func setTextView() { self.translatesAutoresizingMaskIntoConstraints = true self.sizeToFit() } } translatesAutoresizingMaskInto..