기본적으로 ImageView에도 Tap Gesture 연결하고,
View에도 Tap Gesture 연결해서 빌드하면
ImageView에 대한 TapGesture가 작동하지 않는다
isUserInteractionEnabled를 true로 바꿔주자
(view는 디폴트가 true로 설정되어 있다)
// Editing Changed로 모든 버튼 땡겨옴
// 실질적으로 sender는 안썼다. 모든 버튼이 다 완성되어야 하기 때문에
@IBAction func EditingIdTextfield(_ sender: UITextField) {
if (checkNextPage()) {
nextButton.tintColor = .white
nextButton.backgroundColor = .systemPink
}
else {
nextButton.tintColor = .darkGray
nextButton.backgroundColor = .systemGray5
}
}
becomeFirstResponder()라는 게 있었다
@IBAction func returnKeyTapped(_ sender: UITextField) {
switch sender.tag {
case 0 :
passwordTextField.becomeFirstResponder()
case 1 :
passwordConfirmTextField.becomeFirstResponder()
case 2 :
nicknameTextField.becomeFirstResponder()
case 3 :
view.endEditing(true)
default :
break;
}
}
(해결)
// 2. 셀 데이터 및 디자인
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// MovieListTableViewCell 클래스의 함수를 사용하기 위해 타입 캐스팅
let cell = tableView.dequeueReusableCell(withIdentifier: MovieListTableViewCell.identifier) as! MovieListTableViewCell
// 스크린에 따라 다른 배열 적용
if ( screen == 0 ) {
cell.designCell(fullList[indexPath.row])
cell.likeButton.tag = indexPath.row
cell.likeButton.addTarget(self, action: #selector(likeButtonTapped), for: .touchUpInside)
}
else {
cell.designCell(likeList[indexPath.row])
cell.likeButton.tag = indexPath.row
cell.likeButton.addTarget(self, action: #selector(likeButtonTapped), for: .touchUpInside)
}
return cell
}
@objc
func likeButtonTapped(_ sender: UIButton) {
if (screen == 0) {
fullList[sender.tag].like.toggle()
makeLikeList()
tableView.reloadData()
}
else {
// 즐겨찾기 창에 나온 영화들은 일단 like가 모두 true
// 눌렀다는 건 해제한다는 뜻
// 해당 영화를 fullList에서 찾아서 like를 false로 바꿔주고 makeLikeList() 호출
let title = likeList[sender.tag].title
for i in 0...fullList.count-1 {
if fullList[i].title == title {
fullList[i].like = false;
}
}
makeLikeList()
tableView.reloadData()
}
}