UIScrollView 无法正常工作(它返回顶部并且不显示任何滚动条

Posted

技术标签:

【中文标题】UIScrollView 无法正常工作(它返回顶部并且不显示任何滚动条【英文标题】:UIScrollView doesn't work properly (it backs to top and not shows any scrollers 【发布时间】:2013-02-14 13:33:41 【问题描述】:

我正在做一个 iphone 应用程序,其中有几个 UILabel、UITextfields 和 UIButtons。我需要在高度为 480 像素的屏幕上显示它们,所以我将它们引入 UIView。后来,我创建了一个 UIScroller 来展示它们。

它在interface builder中的结构是:

视图控制器 ---> 查看(不可调整大小,可能是强制性的) ---> 滚动视图 --->查看 ---> 标签 ---> 文本字段

我在“Identity Inspector”(在 Interface Builder 上)中的“User Defined Runtine Attributes”下方设置了 UIScrollView contentsize 和 UIView 框架,并在应用程序运行时在控制台日志中显示它们。似乎没问题,但是当我向下滚动 UIScrollView 并且它的滚动没有显示时,它总是回到顶部。

我在这个论坛上搜索了很多,但没有找到任何解决方案。

有人可以帮我吗?谢谢!

编辑:我在我的代码中添加了这个来显示它们定义的值(uploadView 是 scrollView 中的视图)

- (void) viewDidLoad 
//....  
[super viewDidLoad];
    CGSize size = scrollView.contentSize;
CGRect viewrect = uploadView.frame;
CGSize viewsize = viewrect.size;
NSLog (@"size of scrollView: height= %f and width= %f", size.height, size.width);
NSLog (@"size of uploadView: height= %f and width= %f", viewsize.height, viewsize.width);

输出是:

size of scrollview: height= 600.000000 and width= 320.0000000
size of uploadview: height= 600.000000 and width= 320.0000000

【问题讨论】:

发布一些代码。问题似乎没有问题。 fibnochi 是对的,一些代码会有所帮助。但听起来你没有设置 UIScrollView 的内容大小。像 scrollview.contentSize = CGSize(width,height) 之类的东西(我是凭记忆写的,可能有 sintax 问题。以旧方式尝试,在高度上放一个大数字。 【参考方案1】:

没有任何代码很难准确判断您的问题是什么,但您可以尝试在代码中设置内容大小:

scrollView.contentSize = view.size

view 是滚动视图中的 UIView

•---> Scrollview 
    •---> View 

【讨论】:

【参考方案2】:

嗯,我一直在寻找任何答案,我找到了解决方案。

I can't get my scrollview to scroll correctly with objects such as 'round rect buttons' or labels

总结一下,使用viewDidAppear方法

- (void)viewDidAppear:(BOOL)animated 
  [super viewDidAppear:animated];

  [scrollview setScrollEnabled:YES];
  [scrollview setContentSize:CGSizeMake(320, 600)];

【讨论】:

以上是关于UIScrollView 无法正常工作(它返回顶部并且不显示任何滚动条的主要内容,如果未能解决你的问题,请参考以下文章

全屏 UIScrollView 无法正常工作

使用大标题时 iOS 11 滚动到顶部无法正常工作

在父视图中添加 ImageView 后 UIScrollView 停止滚动?

无法正确配置 UIScrollView(顶部偏移)

UIScrollView 在视图中设置 contentoffset 将无法正常工作

对于 IOS 上的 Safari 和 Chrome,文本框到页面顶部的转换无法正常工作