UIImageViewで画像をロードしていますが、これをUIScrollViewに追加しています。 イメージはローカルイメージで、高さが約5000ピクセルです。UIScrollviewでUIScrollviewを大きな画像ブロックスレッドで追加する
UISmrollViewをUIScrollViewに追加すると、スレッドがブロックされるという問題があります。 これを行うと、画像が表示されるまでUIScrollViewをスクロールできないので、明らかです。
例を示します。
UIScrollView *myscrollview = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 768, 1004)];
myscrollview.contentSize = CGSizeMake(7680, 1004);
myscrollview.pagingEnabled = TRUE;
[self.view addSubview:myscrollview];
NSString* str = [[NSBundle mainBundle] pathForResource:@"APPS.jpg" ofType:nil inDirectory:@""];
NSData *imageData = [NSData dataWithContentsOfFile:str];
UIImageView *singleImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData:imageData]];
//the line below is the blocking line
[scrollView addSubview:singleImageView];
これは、スクロールをブロックする最後の行です。私がそれを残すと、イメージはもちろん表示されていないという事実を除いて、すべてが完璧に動作します。
マルチスレッドを使用するとUIViewの操作がうまくいかないことを思い出しています。だから私はうんざりしています。
ご協力ありがとうございます。
あなたのフィードバックのお寄せいただきありがとうございます。私は雑誌のアプリケーションの一部であるため、この作業を行っています。イメージは実際にはスナップなしで垂直スクロールを必要とする記事です。 –
ありがとうございます。私はまだUssrollviewがUIをブロックせずにコンテンツをレンダリングすることが可能でなければならないと信じています... –
ユーザがスクロールしているときに、いくつかの画像をあらかじめロードする必要があります。 UIScrollViewDelegateプロトコルとscrollViewDidScrollのようなメッセージを見てください。あなたはユーザーの活動を制御することができ、いつロード/アンロードする必要があるのかを知ることができます。 –