【问题标题】:Scrollview will not scroll even with larger contentsize即使内容大小较大,滚动视图也不会滚动
【发布时间】:2013-08-08 12:15:25
【问题描述】:

遇到了一个我不明白的奇怪问题。

我将内容大小设置为我创建的名为 newSize 的 CGSize。我在 UIScrollView 中的一行中添加按钮,该按钮超出了滚动视图的框架,并更改了内容大小以匹配新的宽度 + 400 以确保安全。

    newSize.width = contentSizeWidth+400;

    NSLog(@"newSize width: %f", newSize.width);

    [_scrollViewOutlet addSubview:button];

    [_scrollViewOutlet setContentSize:newSize];

    NSLog(@"scrollviewOutlet Content Width: %f", _scrollViewOutlet.contentSize.width);

NSLog 打印出 768。在界面生成器的滚动视图中启用了滚动,但我无法滚动滚动视图?问题可能是什么?

【问题讨论】:

  • contentSizeWidth如何计算?
  • _scrollViewOutlet.contentSize.width = 768.00 且 Scrollview 框架宽度为 400
  • 那么,contentSizeWidth 有一个硬编码值吗?
  • 它穿过一个按钮数组并且 contentsizewidth 增加如下: contentSizeWidth = (20+button.frame.size.width) * i;在滚动视图中的每个按钮之间创建一个 20 像素的间隙。
  • 你在哪里调用上面的代码? viewDidLoad?

标签: ios uiscrollview


【解决方案1】:

这可能会有所帮助: 在提供 contentSize 之前添加按钮。

// add all buttons
// create contentSizeWidth presumably by adding all buttons height
contentSizeWidth = contentSizeWidth + buttonHeight;// repeat this for every button  
 [_scrollViewOutlet addSubview:button];

// create newSize
newSize.width = contentSizeWidth+400;

// set content size
  [_scrollViewOutlet setContentSize:newSize];

【讨论】:

    【解决方案2】:

    我解决了这个问题。这是一个需要在视图中取消勾选的自动布局复选框。

    【讨论】:

    • 再模糊不过了。
    【解决方案3】:

    问题可能是frame的宽度等于contentSize的宽度。

    【讨论】:

      猜你喜欢
      • 2011-11-02
      • 1970-01-01
      • 2013-07-28
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多