【发布时间】:2012-04-18 00:35:19
【问题描述】:
我放弃了。似乎无法使这个非常基本的事情起作用。请帮忙...
我正在尝试将图像从 URL 加载到可滚动、可捏合/缩放的屏幕上。
这是我的代码 sn-p,它会产生一个空白屏幕。我选择将它放在 viewDidAppear 中:
@property (weak, nonatomic) UIScrollView *scrollView;
@property (weak, nonatomic) UIImageView *imageView;
...
- (void)viewDidAppear:(BOOL)animated {
NSData *photoData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:urlForImage]];
UIImage *photoImage = [[UIImage alloc] initWithData:photoData];
self.scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];
[self.scrollView setContentSize:photoImage.size];
[self.scrollView setMinimumZoomScale:1];
[self.scrollView setMaximumZoomScale:5];
[self.view addSubview:self.scrollView];
self.imageView = [[UIImageView alloc] initWithImage:photoImage];
[self.imageView setContentMode:UIViewContentModeScaleAspectFit];
[self.imageView setFrame:self.view.frame];
[self.scrollView addSubview:self.imageView];
}
我也实现了 viewForZoomingInScrollView:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.imageView;
}
我得到一个白屏。我错过了什么?提前谢谢你。
【问题讨论】:
-
首先确保上面没有任何内容(例如照片图像)为 nil。然后我会在你的滚动视图中添加一个简单的标签,看看你是否能看到。
-
谢谢。我几乎可以肯定照片图像不是零。通过断点,我看到变量 photoData 和 photoImage 具有值。我也 NSLog 网址,它在浏览器中是有效的。
-
您将属性声明为弱而不是强有什么原因?
-
jonkroll,你发现了问题。当我将属性声明为强时,它解决了它。谢谢。
标签: objective-c ios uiscrollview uiimageview uiimage