【问题标题】:Unable to scroll in scroll view无法在滚动视图中滚动
【发布时间】:2013-11-07 18:00:37
【问题描述】:

这是我在故事板中的视图布局:

我的滚动视图框架设置为320x568,并且在我的视图控制器中我已经设置了

self.scrollView.scrollEnabled = YES;
[self.scrollView setContentSize:CGSizeMake(320,1000)];//obviously content is larger than frame

但是,滚动仍然不起作用。所以我启用了垂直反弹,发现每次向下拖动它都会反弹回原来的位置。谁能帮我解决这个问题?

【问题讨论】:

  • 一个可能的问题是您忘记将布局管理器中的该对象链接到您的“scrollView”属性。
  • @manecosta 我做了,但它不起作用。
  • 在这些行创建断点以确保代码正在运行并且“scrollView”不为空。
  • @manecosta 我做了,scrollView 不是 nil 或 null。
  • 好吧,我们一定遗漏了一些东西,但据我所知,当 contentSize 大于它的 frame 时,scrollView 会滚动。我唯一能想到的就是分页。你启用了分页吗?如果内容不足以容纳至少 2 个页面,我不确定 scrollView 是否会滚动,但事实并非如此。

标签: ios iphone objective-c xcode cocoa-touch


【解决方案1】:

在您的 .h 文件中添加 UIScrollViewDelegate 例如:

@interface myViewController : UIViewController <UIScrollViewDelegate>

在 viewDidLoad 集合中的 .m 文件中

self.myScrollView.delegate = self;

【讨论】:

  • 我不认为需要为滚动视图设置委托属性才能正确滚动。
  • 尝试以编程方式设置滚动视图框架,因为您可能有自动调整规则和约束来调整它的大小。 scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 568)];
  • @NikosM。不,它也不起作用,即使有明确的设置。
  • 在 viewDidLoad [myScrollView setClipsToBounds: YES]; 中也设置它
【解决方案2】:

如果您的滚动视图中有一个子视图,正如您所做的那样,滚动视图将滚动到该视图的尺寸。详情见答案here

【讨论】:

    【解决方案3】:

    首先关闭自动布局 - 点击滚动视图并取消选中使用自动布局

    在您的 .h 文件中添加 UIScrollViewDelegate 例如:

    @interface myViewController : UIViewController &lt;UIScrollViewDelegate&gt;

    在 viewDidLoad 集合中的 .m 文件中

    self.myScrollView.delegate = self;
    self.myscrollView.scrollEnabled = YES;
    self.myscrollView.contentSize=CGSizeMake(320.0, 1094.0);
    

    保持反弹并设置滚动视图帧 320 X 960

    【讨论】:

      【解决方案4】:

      view.userInteractionEnabled = YES

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-06
        相关资源
        最近更新 更多