自定义 uitableviewcell 中的 uiscrollview
Posted
技术标签:
【中文标题】自定义 uitableviewcell 中的 uiscrollview【英文标题】:uiscrollview in custom uitableviewcell 【发布时间】: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 观察器来找出它在哪里被改变了。这是一种必须调试某些东西的糟糕方法,但它可能会回答您的问题。 【参考方案1】:如果你使用故事板,我猜是去使用
initWithCoder:(NSCoder *)coder;
这个方法在 viewDidLoad 之后被调用,它可能与这个有关。
这很奇怪,我会正常发表评论以保持讨论,但 50 声望不会让我
【讨论】:
它不起作用 :( 但是当我从 storyBoard 文件中删除 autoLayout 时,一切正常 我花了整个晚上的时间在里面工作,因为我不想关闭自动布局.....最后我找到了一个很好的解决方案 很高兴听到您的回答,将您的答案标记为一个,这样人们就知道问题已得到解答......干杯!【参考方案2】:最佳解决方案:
在storyBoard中我删除了scrollView的所有子视图 在-(void)awakeFromNib
我创建了所有视图并以编程方式将它们添加到scrollView
现在一切正常
【讨论】:
以上是关于自定义 uitableviewcell 中的 uiscrollview的主要内容,如果未能解决你的问题,请参考以下文章
自定义 UITableViewCell 中的 UIImageView 在单击时调整大小
ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
将自定义 UITableViewCell 从 nib 加载到 Swift 中的 UIViewController