2016-08-11 2 views
0

프로그래밍 방식으로 모든 작업을 수행하고 있습니다. 나는 UITableViewCell 하위 클래스중인 행 가진 UITableView 있어요. 화면에 아무 것도 나타나지 않으면 내 셀의 accessoryType을 설정할 수 없습니다. 나중에 셀을 선택하고 선택하면 체크 표시를 추가 할 수 있기를 원합니다.UITableViewCell 하위 클래스의 액세서리 유형이 보이지 않습니다.

class ContactsTableViewCell: UITableViewCell { 

    let name = UILabel() 
    let phoneNumber = UILabel() 
    let iPADFACTOR:CGFloat = DeviceHelper().isIPAD ? 1.4: 1.0 

    var rowSelected = false 

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) { 
     super.init(style: style, reuseIdentifier: reuseIdentifier) 

     phoneNumber.font = UIFont.systemFontOfSize(15) 
     phoneNumber.textColor = UIColor.lightGrayColor() 
     self.contentView.addSubview(name) 
     self.contentView.addSubview(phoneNumber) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

    override func layoutSubviews() { 

     let margeV:CGFloat = 5.0*iPADFACTOR 
     let margeH = self.frame.width*0.05 

     name.frame = CGRectMake(margeH, margeV, self.frame.width - margeH * 4, 18) 
     phoneNumber.frame = CGRectMake(margeH, name.frame.maxY + 5, self.frame.width - margeH * 4, 15) 
    } 

} 

당신은 내가 내 라벨의 프레임을 설정하려면 layoutSubviews() 방법을 사용하고 있는데 나는 그것이 성공없이 accessoryView을 숨기고 어떻게 든 여부를 확인하기 위해 라벨 크기와 함께 연주 해봤 볼 수 있듯이. 심지어 프레임을 0으로 설정하려고 시도했습니다.

프레임을 올바르게 설정하고 있는지 확실하지 않습니다. self.frame 대신 self.contentView.frame을 사용해야합니까?

감사합니다. 감사합니다.

+0

유는 cellForRowAtIndexPath 메소드 내부 셀의 tableview – vaibby

+0

기록 cell.accessoryType = UITableViewCellAccessoryType.Checkmark 폭을 확인할 수있다. –

+0

'cellForRowAtIndexPath'의 코드를 보여줄 수 있습니까? –

답변

0
override func layoutSubviews() { 
    super.layoutSubviews() 
    let margeV:CGFloat = 5.0*iPADFACTOR 
    let margeH = self.frame.width*0.05 

    name.frame = CGRectMake(margeH, margeV, self.frame.width - margeH * 4, 18) 
    phoneNumber.frame = CGRectMake(margeH, name.frame.maxY + 5, self.frame.width - margeH * 4, 15) 
} 
+0

정말 고마워요. 어떻게 슈퍼 클래스를 참조하는 것을 잊었는지 모르겠습니다. 그 외에도 내 하위 뷰를 배치하기 위해 contentView를 사용하는 것이 더 나은지 알고 있습니까? – Croisciento

+0

@CroiSciento 하위 뷰를 추가 할 때 contentView를 사용하는 것이 좋습니다.이 경우 하위 뷰 프레임을 계산하려면 contentView를 사용하십시오. – Catoshi

+0

알았어, 조언 주셔서 감사합니다. – Croisciento

0
if (YES) { 
    cell.accessoryType = UITableViewCellAccessoryType.Checkmark 
} else { 
    cell.accessoryType = UITableViewCellAccessoryType.None; 
} 
관련 문제