2012-05-01 26 views
6

Görünüm denetleyicisi yüklendiğinde belirli bir satıra kaydırmak için bir tablo görünümü oluşturdum. Ben viewDidLoad yönteminde bu kodu koymak ve bunu beklemek nasıl çalışır:UITableView'im kaydırma işlemini canlandırmak için söylemediğim sürece neden kaydırma yapmıyor?

[thisTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:16 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];

Ancak, ben animated:NO son bit, hiç kaydırma etmediğini değiştirirseniz. Animasyona sahip olmakla iyiyim, ama merak ediyorum: Animasyon NO olarak ayarlanmışsa neden kaydırma yapmıyor?

cevap

7

viewDidLoad'da, tablonuz boş, 16 numaralı sıraya kaydırma mümkün değil. Görüşme hemen değerlendirilir çünkü animasyona gerek duyulmadığı için animasyona gerek duymazsınız: Animasyon kullandığınızda: YES, animasyon görüntülenene kadar ertelenir, tablonuz o zamana kadar doldurulur.

Tablonuz veriyle doldurulmuşsa, bu tür kodu viewDidAppear (veya viewWillAppear) yerine kullanmak isteyebilirsiniz. Bu, görünüm (her ne kadar biraz mantık eklemediğiniz sürece) olsa da, her zaman bunu çağıracaksınız, sizin gereksiniminize cevap verip vermediğinden emin değilsiniz ...

+0

Mükemmel. Tam olarak istediğim gibi çalışıyor. Ayrıca bu, viewDidLoad tamamlandıktan sonra tabloyu gerçekten yüklemez. Teşekkürler –

+0

Ayrıca, bir yan not olarak, tablo görünümünde reloadData çağırarak verilerini viewDidLoad içine yüklemek için tabloyu zorladım. Bu, animasyon olmadan kaydırma yaptı viewDidLoad –

+0

Bu statik bir tablo ise, neden olmasın, ancak aksi halde, bunu yapmak için doğru yer değil. Ayrıca, viewDidAppear'ı kullanarak bir ekran hatası görmeniz durumunda, bunun yerine viewWillAppear'ı kullanabilirsiniz. –

İlgili konular