문제

설정 : a UITextView 내부 a UITableViewCell'에스 contentView. 나는 그것이 셀의 전체 크기를 차지하기를 원합니다. 나는 다음과 같은 텍스트보기를 만듭니다.

UITextView *textView = [[[UITextView alloc] initWithFrame:CGRectMake(0,0,268,43)] autorelease];
textView.backgroundColor = [UIColor redColor];
textView.layer.cornerRadius = 10;
textView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

그리고 나는 HeightforseFortIndexPath를 무시하여 그 행에 대해 200을 반환합니다.

배경색은 어디에 있는지 알 수 있습니다. 셀은 첫 번째보기에 자동으로 올바르게 크기를 조정하는 것 같습니다. 그러나 인터페이스를 자동화하는 동안 계속 올바르게 크기를 조정해야합니다. 인터페이스는 때때로 작동하는 것처럼 보이며 텍스트 뷰를 편집하지 않을 때만 가능합니다. 다른 경우에는 높이가 매우 작거나 (-1처럼 보이는지) 또는 너무 넓게 만들거나 전혀 크기를 조정하지 않도록 뷰가 크게 나옵니다.

나는 셀에서 레이아웃 서브 뷰를 무시하려고 시도했지만 아무것도하지 않지만, 심지어 모든 곳에서 시각을 조정하는 것을 막지는 못합니다.

나는 지금이 일을 잠시 동안 해킹 해왔지만 여전히 해결책을 찾지 못했습니다.

도움이 되었습니까?

해결책

uitableviewcell은 고정 된 높이, uitableview 대의원이 제공하는 높이입니다. 장치를 회전 할 때 전화하지 않는 한 행의 높이는 변경되지 않습니다. -reloadData TableView에서. 나는 자동화를 제거하고 직접 관리 할 것입니다.

텍스트 필드를 시작하면 프레임을 쉽게 설정할 수 있습니다. CGRectZero. 그런 다음 구현하십시오 -layoutSubviews (그리고 그 방법으로 Super를 호출하십시오. ~ 전에 하위 뷰의 프레임 설정)에 따라 Uitextfield의 프레임을 설정합니다. contentRect 셀의 속성.

- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
    if(self = [super ...]){ // or -initWithStyle:reuseIdentifier: whatever you want
        _textView = [[UITextView alloc] initWithFrame:CGRectZero]; // Instance variable
        // Probably not needed to set autoresizing mask
    }

    return self;
}
- (void)layoutSubviews {
    [super layoutSubviews];
    _textView.frame = CGRectMake(0.0f, 0.0f, self.contentRect.size.width, self.contentRect.size.height); // Adjust as needed
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top