【问题标题】:uiscrollview in custom uitableviewcell自定义 uitableviewcell 中的 uiscrollview
【发布时间】:2013-08-16 19:04:31
【问题描述】:

我已经建立了自定义UITableViewCell“customCell”, 里面只有UIScrollView“scrollView”和scrollView:有2个子视图

在 customCell 类中 我把这样的代码设置为scrollView的contentSize

(void)layoutSubviews{
    self.scrollView.contentSize = CGSizeMake(480, 120);
}

代码被调用并且 contentSize 正常工作,但是 有一些东西可以将 self.scrollView 的 contentSize 重新更改为默认值,我认为这是因为限制

我尝试在这些方法中更改 contentSize,但都没有解决问题

-(void)awakeFromNib
-(void)buildCell // this method get called from tableView method - tableView:cellForRowAtIndexPath:

我应该在哪里设置我的 scrollView 的 contentSize ???

-- 更新:

这是奇怪的行为: 当我向下滚动表格视图时,方法layoutSubviews 将再次被调用,但这次 contentSize 将保持它的新值并且不会被覆盖或更改

-- 更新 2:

当我从 storyBoard 文件中删除 autoLayout 时,一切正常...... :s
\如何在不移除autoLayout的情况下解决问题

【问题讨论】:

  • 您是否检查以确保 self.scrollView 指向您认为它指向的滚动视图,而不是 nil 或其他什么?
  • 是的,我检查了,self.scrollView 指向 storyBoard 中的正确视图,它不是 nil
  • 如果它在运行时绝对不是 nil,你可以在 contentSize 属性上放置一个 KVO 观察器来找出它在哪里被改变了。这是一种必须调试某些东西的糟糕方法,但它可能会回答您的问题。

标签: ios uitableview uiscrollview


【解决方案1】:

如果你使用故事板,我猜是去使用

initWithCoder:(NSCoder *)coder;

这个方法在 viewDidLoad 之后被调用,它可能与这个有关。

这很奇怪,我会正常发表评论以保持讨论,但 50 声望不会让我

【讨论】:

  • 它不起作用 :( 但是当我从 storyBoard 文件中删除 autoLayout 时,一切正常
  • 我花了整个晚上的时间在里面工作,因为我不想关闭自动布局.....最后我找到了一个很好的解决方案
  • 很高兴听到您的回答,将您的答案标记为一个,这样人们就知道问题已得到解答......干杯!
【解决方案2】:

最佳解决方案:

  • 在storyBoard中我删除了scrollView的所有子视图
  • -(void)awakeFromNib 我创建了所有视图并以编程方式将它们添加到scrollView

现在一切正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多