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 不从里面的对象滚动的主要内容,如果未能解决你的问题,请参考以下文章