UIScrollView 不从里面的对象滚动

Posted

技术标签:

【中文标题】UIScrollView 不从里面的对象滚动【英文标题】:UIScrollView not scrolling from objects inside 【发布时间】:2014-03-19 15:14:43 【问题描述】:

我有一个滚动视图,其中包含一个视图和该视图内的 3 个子视图(顶视图、文本视图和底视图)。请参阅下面的视图层次结构。仅当我从 textview 滚动而不是从任何其他区域滚动时,滚动视图才可滚动。我究竟做错了什么?所有视图都启用了用户交互。

编辑: 我已经意识到如果在容器视图中禁用了用户交互,我可以从视图中的任何位置滚动,但是由于我的容器视图中有按钮,我想要用户交互和滚动,这可能吗?

这是代码:

- (void)viewDidLoad

    [super viewDidLoad];
    //update labels and images with info
    self.TitleLabel.text = game.title;
    self.SubtitleLabel.text = game.developer;
    self.DescriptionTextView.text = game.description;
    self.Screenshot.image = [[UIImage alloc] initWithData:game.pictData];


-(void) viewDidAppear:(BOOL)animated

    [super viewDidAppear:animated];
    [self.mainScrollView setScrollEnabled:YES];
    [self.mainScrollView setContentSize:CGSizeMake(320, 1200)];


-(void)viewDidLayoutSubviews

    NSAttributedString * string = [[NSAttributedString alloc] initWithString:self.game.description];
    CGFloat heightTV = [self textViewHeightForAttributedText:string andWidth:260];
    self.dynamicTVHeight.constant = heightTV;
    self.dynamicContainerHeight.constant = self.topView.frame.size.height + heightTV + self.bottomView.frame.size.height+100;
    NSLog(@"height container %f", self.dynamicContainerHeight.constant);
    [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;

【问题讨论】:

UIScrollView 的内容大小设置正确了吗? 是的。如果我从 textview 滚动它,它会向下滚动。 嗯,也许看到一些代码可以帮助理解问题。文本视图本身是可滚动的。当您说它在 textview 中滚动时,可能会发生滚动的 TextView 而不是 UIScrollView。你能验证一下吗? 文本视图不可滚动。它滚动 UISCrollView。 code 你上传代码,我们可以下载调试。 【参考方案1】:

我不确定,但您的问题似乎与 AutoLayout 相关,您可以试试这个 How to make a ScrollView with AutoLayout in Xcode5

它为我解决了类似的问题。

【讨论】:

以上是关于UIScrollView 不从里面的对象滚动的主要内容,如果未能解决你的问题,请参考以下文章

UIscrollview 不能快速滚动

iOS开发UI篇—UIScrollView控件介绍

uiscrollview——我理解正确吗?

iOS开发UI篇—UIScrollView控件介绍

UIView 不会在 UIScrollView 内垂直滚动

在不锁定 UI 的情况下禁用滚动视图