2017-04-26 5 views
1

, 예를 들어 HistoryCell커스텀 UITableViewCell에서 UILabel의 글꼴 크기를 어떻게 얻을 수 있습니까? 나는 사용자 정의 클래스가 세포와 jQuery과이

세포 UI 요소는 인터페이스 빌더의 구성 및 클래스 속성과 연결되어

내 작업 때문에 이러한 세포가 제대로 높이 설정
@IBOutlet var contentLabel: UILabel! 

contentLabel은 여러 줄입니다. 나는 String.boundingRect 방법을 사용하여 높이를 계산하려면,하지만 내가 코드 개발 시간을 위해 인터페이스 빌더에서 글꼴 속성을 복사 만 할 수 UIFont

을 필요하지만 글꼴이 향후 변경 될 경우, 코드가

를 해결하기 위해 필요합니다

내가 메모리에서 글꼴을 얻으려면 대신 해당 셀
나는 정적 인스턴스를 생성하고 반환 글꼴을 사용합니다

class HistoryCell: UITableViewCell { 
    private static let instance = HistoryCell() 

    static func textFont() -> UIFont { 
     return instance.contentLabel.font 
    } 
} 

을하지만 HistoryCell.textFont 메서드를 호출 할 때, contentLabelnil

왜 이것이 0입니까?
셀 요소 글꼴을 다른 방법으로 가져올 수 있습니까?

+0

당신은 co IBOutlet에서 contentLable 로의 연결 – karthikeyan

+0

보기가로드 된 후에 확인해야합니다. 예를 들어 awakeFromNib()에서 시도해보십시오 – Tobonaut

+0

@Tobonaut, tableview 셀이 자신의 xib 파일이 아닌 스토리 보드에있을 때 가능합니까? –

답변

0

난 당신이 함께 IBOutlet를 사용 contentLabel를 연결 한 추측하고 HistoryCell의 인스턴스를 만들 때, 그것은 코코아 콩 파일 참조를로드하지 않습니다. 이 의이 contentLabel 당신에게

을 전무 개체를 반환하기 때문에 당신은

open func textFont() -> UIFont { 
    return self.titlelabel.font 
} 

와 동일한 작업을 수행하고 대기열에서 제외 FUNC에게

let cell = tableView.dequeueReusableCell(withIdentifier: "ParallexCell", for: indexPath) as! HistoryCell 
let font = cell.textFont() 
0

I을 사용하여 수신 셀의 객체를 사용하여이 함수를 호출 할 수 있습니다 글꼴 계산없이 간단한 해결책을 찾았습니다 :

func tableView(_ tableView: UITableView, heightForRowAt 
    indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 
관련 문제