UIScrollView 子视图和 setNeedsDisplay
Posted
技术标签:
【中文标题】UIScrollView 子视图和 setNeedsDisplay【英文标题】:UIScrollView subviews and setNeedsDisplay 【发布时间】:2011-12-15 05:47:34 【问题描述】:我有以下问题:
我有一个包含 UIScrollView 作为子视图的 UIView。 (笔尖文件)。 我以编程方式向 UIScrollView 添加了几个子视图(UIImageView),每个 UIImageview 都包含一个从网络异步加载的图像,因此我需要在下载图像时更新 scrollView。在负责图像获取的类中,我使用此代码宣传负责管理滚动视图的视图控制器
[[(MosaicViewController *)data] scrollView setNeedsDisplay];
Ivar 数据是一个指向 ViewController 的指针。 这东西不起作用,没有重新加载滚动视图 为了确保调用被触发,我在包含滚动视图的 viewController 中编写了一个方法,在这个方法中我调用了 setNeedsDisplay,
[(MosaicViewController *)data updateView];
-(void) updateView
NSLog(@"setNeedsDisplay");
[self.scrollView setNeedsDisplay];
方法 updateView 被正确触发,我的意思是在每个 Image 下载后调用,但 scrollView 内容没有更新。在包含scrollView的ViewController中我没有实现drawRect方法,这可能是调用setNeedsDisplay后没有更新的原因吗?
欢迎任何帮助/建议/参考等。 在此先感谢
【问题讨论】:
【参考方案1】:老兄,你在做 imageView.image = updatedImage 吗??
另外你不应该做 [self.scrollView setNeedsDisplay] 因为你没有在 scrollView 上做任何改变!!
改变的是imageView的内容,imageView.image=downloadedImage会自动触发imageView上的setNeedsDisplay!!
其他一些检查点
scrollView 是否可见? scrollView.contentSize 设置了吗? scrollView 框架是否正确??
【讨论】:
以上是关于UIScrollView 子视图和 setNeedsDisplay的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollView 子视图中滚动事件的锁定处理(在 UIScrollView 超级视图内)