添加到UIScrollView时调整UITextView父UIView的大小

时间:2018-06-11 11:51:06

标签: ios objective-c

我有一个UIView包含许多UITextViews,它们调整大小以适应文本,最后一个文本视图通过Autolayout连接到父UIView的基础。然后使用以下

将UIView动态添加到UIScrollView
 for (UIView *subview in self.scrollViewContent.subviews) {
        [subview removeFromSuperview];
    }

    CGRect screenRect = [[UIScreen mainScreen] bounds];
    CGFloat screenWidth = screenRect.size.width;

    NSLog(@"%f",self.txtViewEndOfFAQ.frame.size.height);

    [self.viewFAQ setFrame:CGRectMake(0, 0, screenWidth, (self.txtViewEndOfFAQ.frame.origin.y + self.txtViewEndOfFAQ.frame.size.height))];


    [self.scrollViewContent addSubview:self.viewFAQ];
    [self.scrollViewContent setContentSize:CGSizeMake(self.viewFAQ.frame.size.width,   self.viewFAQ.frame.size.height)];


    [self addUnderline:self.imageViewTitle4];

    [self showMenu:nil];

现在问题是当它加载时它并没有给我正确的高度。使用较窄的设备时,文本视图的高度会增加以适应文本,这似乎不会被考虑在内。

1 个答案:

答案 0 :(得分:0)

您可以通过编程方式添加高度约束,只要它不会与现有约束产生冲突。使用NSLayoutConstraint就像:

NSLayoutConstraint *heightConstraint = [NSLayoutConstraint
                       constraintWithItem:self.viewFAQ
                       attribute:NSLayoutAttributeHeight
                       relatedBy:NSLayoutRelationEqual
                       toItem:self.txtViewEndOfFAQ
                       attribute:NSLayoutAttributeNotAnAttribute
                       multiplier:1.0
                       constant:0];

[self addConstraints: heightConstraint];

使用NSLayoutAnchor:

[self.viewFAQ.heightAnchor constraintEqualToAnchor:self.txtViewEndOfFAQ.heightAnchor].active = YES;