0

我有两个视图,一个是 textView,下面是一个滚动视图,在我的应用程序中,textView 应该在触摸它时切换展开。我在 IB 中为 scrollView 设置了“顶部空间为:文本视图”。但是当我展开 textView 时,它似乎不行。

这是切换扩展代码。

- (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:. 如果您希望视图增长,您应该添加一个约束或编辑现有约束之一,然后调用其中一个-setNeedsUpdateConstraints-layoutIfNeeded

或者只是关闭自动布局。

于 2013-03-14T02:34:14.033 回答