2011-02-21 2 views
0

Я искал бесконечно безрезультатно, надеюсь, кто-то может помочь!Odd Scrolling Issue (UIScrollView)

У меня есть UIScrollView в левой половине UIView, который загружается в пользовательские ячейки/подпункты. 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:

+0

Вы загружаете изображения из URL? – iHS

+0

Сколько у вас продуктов? Можете ли вы показать нам свой ProductListLeftItemViewController? BTW, вызывающий освобождение на cellItem после установки cellItem на nil, является бессмыслицей. Вы должны поменять эти две строки. – robertvojta

+0

Harinder: Я не загружал изображения из URL, на самом деле, я очистил весь подъярус, чтобы он был всего лишь непрозрачным белым фоном - тем же результатом. В основном Иззи: всего 8 продуктов, но я даже попробовал его всего за 1 продукт и с минимальной информацией - тот же результат. И спасибо, я поменял линии. – KidIcarus271

ответ

0

Для всех, кто имеет эту проблему в будущем, как только я начал тестирование вещи на реальном устройстве, все работало идеально гладкой. Может быть, это было просто причудливо с симулятором? Я подумаю об этом, хотя я все еще буду изучать его немного дальше.