0

私は 2 つのビューを持っています。うまくいかない。

これがトグル展開コードです。

- (void)onTextViewClicked:(id)sender
{
    CGRect targetFrame = _descTextView.frame;
    if (_isTextViewExpand) {
        targetFrame.size.height = _descTextViewNormalHeight;
        _descTextView.frame = targetFrame;
        _isTextViewExpand = NO;
        [_contentScrollView setContentSize:CGSizeMake(320.f, kContentScrollViewDefaultHeight)];
    }
    else {
        targetFrame.size.height = _descTextViewExpandHeight;
        _descTextView.frame = targetFrame;
        _isTextViewExpand = YES;
        [_contentScrollView setContentSize:CGSizeMake(320.f, kContentScrollViewDefaultHeight + ( _descTextViewExpandHeight - _descTextViewNormalHeight ))];
    }
}
4

1 に答える 1

0

まったく別のアプローチが必要です。自動レイアウトでは、決して呼び出してはいけません-setFrame:。ビューを大きくしたい場合は、制約を追加するか、既存の制約の 1 つを編集してから、-setNeedsUpdateConstraintsまたはを呼び出す必要があり-layoutIfNeededます。

または、自動レイアウトをオフにします。

于 2013-03-14T02:34:14.033 に答える