我通过segue
传递一些数据(房间照片的名称,描述和名称)
我现在想要将图像设置为scrollView
,以便用户可以滚动全景图片。
我得到了正确的图片网址,但是我没有将图片放到scrollView中。
我的代码是:
#import "RoomsDetailVC.h"
#import "RoomsViewController.h"
@interface RoomsDetailVC ()
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
@property (strong, nonatomic) UIImageView *imageView;
@end
@implementation RoomsDetailVC
@synthesize roomName;
@synthesize priceLabel;
@synthesize descriptionLabel;
@synthesize roomImageString;
- (void)viewDidLoad {
[super viewDidLoad];
self.roomName.title = [self.roomNameString description];
self.priceLabel.text = [self.priceLabelString description];
self.descriptionLabel.text = [self.descriptionLabelString description];
[self.scrollView addSubview:_imageView];
[self setImage];
}
- (void)setImage {
if (self.scrollView) {
NSString *imageName = [self.roomImageString description];
NSURL *imageURL = [[NSBundle mainBundle] URLForResource:imageName withExtension:@"png"];
NSData *imageData = [[NSData alloc] initWithContentsOfURL:imageURL];
UIImage *image = [[UIImage alloc] initWithData:imageData];
if (image) {
self.scrollView.zoomScale = 1.0;
self.scrollView.contentSize = image.size;
self.imageView.image = image;
self.imageView.frame = CGRectMake(0, 0, image.size.width, image.size.height);
NSLog(@"image: %@", imageURL);
} else {
NSLog(@"no image");
}
}
}
- (UIImageView *)imageView {
if (!_imageView) _imageView = [[UIImageView alloc] initWithFrame:CGRectZero];
return _imageView;
NSLog(@"imageView");
}
@end
self.scrollView.description
的NSLog结果是:
scrollView: <UIScrollView: 0x1c114410; frame = (20 268; 280 160); clipsToBounds = YES; autoresize = RM+TM; gestureRecognizers = <NSArray: 0x1c114a10>; layer = <CALayer: 0x1c114660>; contentOffset: {0, 0}>
`self.imageView.description的NSLog结果是:
imageView: <UIImageView: 0x1c115e90; frame = (0 0; 516 160); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x1c113160>>
答案 0 :(得分:2)
我认为这是因为您在获取图像之前添加了子视图(_imageView)。
反过来说:
[self.scrollView addSubview:_imageView];
[self setImage];
到
[self setImage];
[self.scrollView addSubview:_imageView];
答案 1 :(得分:0)
我担心当您将_imageView
添加到滚动视图时,它实际上是nil
。
您应该使用self.imageView
或者在下载后imageView
更好地添加scrollView