【问题标题】:UIScrollView not scrollable using autolayout and dynamic constraintsUIScrollView 不能使用自动布局和动态约束滚动
【发布时间】:2014-03-19 10:58:12
【问题描述】:

我有一个包含滚动视图、容器视图和 3 个子视图(顶视图、文本视图和底视图)的视图。请参阅下面的视图层次结构。 textview 的高度是根据其内容定义的。我为其高度定义了一个动态约束,并在 viewDidLayoutSubviews 中对其进行了更改。 textview 的大小是正确的,但问题是我的滚动视图没有滚动。我做错了什么?也许我需要添加/修改其他一些约束?

-(void)viewDidLayoutSubviews
{
    NSAttributedString * string = [[NSAttributedString alloc] initWithString:self.game.description];
    CGFloat heightTV = [self textViewHeightForAttributedText:string andWidth:260];
    self.dynamicTVHeight.constant = heightTV;
    [self.view layoutIfNeeded];
}

- (CGFloat)textViewHeightForAttributedText:(NSAttributedString *)text andWidth:(CGFloat)width
{
    UITextView *textView = [[UITextView alloc] init];
    [textView setAttributedText:text];
    CGSize size = [textView sizeThatFits:CGSizeMake(width, FLT_MAX)];
    return size.height;
}

【问题讨论】:

    标签: ios objective-c uiscrollview autolayout


    【解决方案1】:

    UIScrollView 只有在 contentSize 大于边界时才会滚动。 UIScrollView 的内容大小可以通过计算子视图的帧数(根据约束计算)来自动设置,也可以在代码中手动设置(通常在 viewDidLoad 中)。 仔细检查你的 UIScrollView 的 contentSize。

    【讨论】:

    • contentSize 大于界限
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 2022-06-17
    • 1970-01-01
    • 2014-12-29
    • 2021-06-10
    • 2015-04-16
    相关资源
    最近更新 更多