2016-09-13 2 views
0

나는 매우 혼란 스럽다.커스텀 UITableViewCell에서 UIButton에 액세스하기

것은 작동하지 : react가있는 UIButton입니다

cell?.react?.setTitle("\(currentObject.likes)", forState: UIControlState.Normal) 

, 즉 내있는 UITableViewCell 하위 클래스의 하위 뷰 내 cellForRowAtIndexPath 방법에

, 내가있는 UIButton 제목을 설정하려합니다.

내 UIButton의 제목을 전혀 업데이트 할 수 없습니다. 나는 그것을 수정하는 발견하는 유일한 방법은, 내있는 UITableViewCell 하위 클래스에서 UITapGestureRecognizer 통해

작업입니다 :

func reaction(button : UIButton) { 
    if button.imageView?.image == UIImage(named: "ic_favorite.png") { 
     button.setImage(UIImage(named: "ic_favorite_border.png"), forState: UIControlState.Normal) 
    } else { 
    button.setImage(UIImage(named: "ic_favorite.png"), forState: UIControlState.Normal) 
    } 
} 
+0

가'react' 당신의 테이블 셀에 그 버튼에 대한 태그를주고,이 같은 시도? 왜 당신은'반응이 내 사용자 지정 셀의 하위 클래스인가? '라고 쓰는 이유는 무엇입니까? – Tj3n

+0

당신이 행동의 반응을 선언 한 곳은 –

답변

0

가 정의 셀 (myCell 말), @IBOutlet로 버튼을 추가 만들기를 입력 한 다음 이 let cell = tableView.dequeueReusableCellWithIdentifier("yourIdentifier", forIndexPath: indexPath) as! myCell.

내가 생각하는 문제는 버튼을 셀에 연결하지 않았다는 것입니다. & Xcode에서 말하는 버튼을 알지 못합니다.

+0

입니다. 버튼 이름입니다! – scott

+0

좋아요, 이상적은 아니지만 효과적입니다. IB를 통해 연결했는데 성공했습니다. – scott

0

먼저 cellForRowAtIndexPath을 사용하여 셀 참조를 가져와야합니다.

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("MyCellIdentifier", forIndexPath: indexPath) as! UIButton   
    // do anything with cell 
    return cell 
} 

테이블보기 셀 (UITableViewCell)에 대한 식별자를 설정해야합니다.

+0

이전 게시물 수정에 관해서 : "환영합니다."와 같은 내용을 지우려면 기존 게시물을 수정하지 마십시오. "[중재자가"감사합니다 "를 제외하고 내린 편집은 모두 낙담하는 것이라고 나에게 알렸다.] http://meta.stackoverflow.com/a/333096/3773011) " – Makyen

+0

공정하게 보입니다. 지적 해 주셔서 감사합니다. – navit

0

// 먼저 버튼이

(cell?.contentView.viewWithTag(tag) as? UIButton)?.setTitle("\(currentObject.likes)", forState: UIControlState.Normal) 
관련 문제