私は無限にこれを無駄に検索したが、うまくいけば誰かが助けることができる!奇数スクロールの問題(UIScrollView)
カスタムセル/サブビューにロードするUIViewの左半分にUIScrollViewがあります。 UIViewはUINavigationスタックの一部であり、TabBarのタブにもロードされます。
私はアプリを起動し、すぐにスクロールを開始すると非常にスムーズです。しかし、私がアプリを起動して5〜10秒待つと、UIScrollViewは非常に遅くて不安定になります(それはそのままです)。私はそれがメモリリークか何かと思うだろうが、私は何かを見つけることができない。
UIScrollViewにカスタムセル/サブビューをロードするビューのコードが含まれています。セルのサブビューにカスタムコードはありません。ああ、およそ8-10のアイテムしかありません。各アイテムには小さな(150x150)イメージと3つのテキストフィールドがあります - すべて不透明です。
#import "ProductListViewController.h"
#import "ProductListLeftItemViewController.h"
@implementation ProductListViewController
@synthesize listScroll;
- (void)viewDidLoad {
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:@"Products" ofType:@"plist"];
NSArray *products = [[NSArray alloc] initWithContentsOfFile:path];
//
int numProducts;
numProducts = [products count];
[listScroll setContentSize:CGSizeMake(500, (numProducts * 111))];
for (int i = 0; i < numProducts; i++) {
ProductListLeftItemViewController *cellItem = [[ProductListLeftItemViewController alloc] initWithNibName:@"ProductListLeftItem" bundle:nil];
cellItem.view.frame = CGRectMake(0, (i*111), 500, 111);
[self.listScroll addSubview:cellItem.view];
cellItem = nil;
[cellItem release];
}
[products release];
[super viewDidLoad];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
NSLog(@"Memory warning, ProductListViewController");
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[listScroll release];
[super dealloc];
}
@end
と要求、ProductListLeftItemViewControllerコードとして:将来的にこの問題を持っている人のために
URLから画像をロードしていますか? – iHS
いくつの商品がありますか? ProductListLeftItemViewControllerを表示できますか? cellItemをnilに設定した後にcellItemでBTWがreleaseを呼び出すのはナンセンスです。これらの2行を入れ替えてください。 – robertvojta
Harinder:私はURLから画像をロードしていませんでしたが、実際はサブビュー全体をクリアして、不透明な白い背景になっていました。同じ結果です。 Chiefly Izzy:わずか8製品ですが、わずか1製品で、最小限の情報で試してみました。同じ結果です。そして、ありがとう、私はラインを交換しました。 – KidIcarus271