1

スクロールビューの画像の下に Web ビューを配置しようとしています。このコードは空白の画面につながります。私はそれが非常に単純だと確信しています(私は初心者です)が、誰かが私の間違いを指摘できますか?

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.title = [self.detailItem title];
    //self.webView = [[UIWebView alloc] init];
    //self.imageView = [[UIImageView alloc] init];
    UIImage* image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[self.detailItem imageURL]]]];

    self.imageView.image = image;
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[self.detailItem url]]]];

    [self.scrollView addSubview:self.imageView];
    [self.scrollView addSubview:self.webView];
    self.imageView.frame = CGRectMake(0, 770, 320, 230);
    [self.webView setFrame:CGRectMake(0, 0, 320, 770)];
    CGFloat scrollViewHeight = 1000.0f;
    /*
    for (UIView* view in scrollView.subviews)
    {
        NSLog(@"%f",view.frame.size.height);
        scrollViewHeight += view.frame.size.height;

    }
    */
    [scrollView setContentSize:(CGSizeMake(320, scrollViewHeight))];
    NSLog(@"%f", self.imageView.frame.size.height);
    NSLog(@"%f", self.webView.frame.size.height);

    [self configureView];
}

.h から

@interface DetailViewController : UIViewController <UIScrollViewDelegate>{
    UIScrollView* scrollView;
}

@property (nonatomic, retain) IBOutlet UIScrollView *scrollView;

@property (strong, nonatomic) id detailItem;
@property (nonatomic, strong) UIWebView *webView;
@property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel;
@property (nonatomic, strong) UIImageView *imageView;
@end
4

2 に答える 2

0

指定されたコードでは、self.scrollViewを初期化しません。

于 2013-01-14T00:14:23.150 に答える
0

これらの値を再初期化することでivarへの元の参照が失われ、フレームを設定していないため、高さの値が0であるため、スクロールビューが大きくなりません:

self.webView = [[UIWebView alloc] init];
self.imageView = [[UIImageView alloc] init];

値が nil の場合にのみ初期化するように変更してみてください

if(self.webView == nil){
    self.webView = [[UIWebView alloc] init];
}
if(self.imageView == nil){
    self.imageView = [[UIImageView alloc] init];

}

//set frames for subviews
UIImage *remoteLoadedImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[self.detailItem imageURL]]];
[[self.imageView setFrame:CGRectMake(0,0,remoteLoadedImage.size.width, remoteLoadedImage.size.height)];
[self.imageView.image = remoteLoadedImage];
//i'm setting an arbitrary height and width
[self.webView setFrame:CGRectMake(0,self.imageView.frame.size.height+5, 320, 450)];
于 2013-01-14T01:01:06.063 に答える