2012-10-03 27 views
14

Masamın üst kısmında bir UIRefreshControl var.Peyzaj içinde UIRefreshControl

Ekran yatayda.

Sorun şu ki, yenilemeyi tetiklemek için yeterince aşağı çekemiyorum, çünkü Peyzaj'da çok az yer var. Aşağı çekmek zorunda olduğunuz miktarı ayarlamanın bir yolu var mı?

+0

kullanarak dikey etkinleştirmeniz gerekebilir, aşağı çekmek için yeterli değildir. OS X 10.8.2 – Zelko

+4

'da Xcode 4.5'da yeniden üretilemeyen uygulama, gezinme çubuğunun yanı sıra tablonun üst kısmındaki UISearchBar'a sahiptir, bu nedenle – cannyboy

+0

'u çekmek için daha az yer vardır. Yalnızca bir gezinme çubuğunuz ve bir aramanız varsa Bar yeterince adil, beklendiği gibi çalışması gerektiği gibi geliyor. Mail uygulamasının arama çubuğu ve nav çubuğu var, iyi çalışıyor, ekranınızda başka neler var? – Daniel

cevap

10

Çekmek için ne kadar mesafe ayarlayacağınız yolu, UITableView'un yüksekliğini değiştirmektir. UIRefreshControl, maksimum distorsiyon yüksekliğini tablonun yüksekliği ile orantılı olarak ayarlar. TableView'un yüksekliğini değiştiremezseniz, lütfen durumunuzun ayrıntıları ile birlikte file a bug'u ve gelecekteki bir iOS sürümünde ele alınmasını umarız.

Ayrıca, daha hızlı aşağı çekmeyi denediniz mi?

+3

Tablo görünümünün yüksekliğinin ayarlanması hiç bir etkisi yok gibi görünüyor. – cannyboy

+0

@cannyboy bu çok ilginç. Lütfen detaylarla bir hata yapın. Teşekkürler! :) –

+0

yep tableview yüksekliği "tableView'un yüksekliğine orantılı olarak maksimum distorsiyon yüksekliği" değiştirmiyor, bir hata yaptım – ugiflezet

10

Tablo görünümünüzün UIScrollView öğesinin yalnızca bir alt sınıfı olduğunu unutmayın. Kontrol cihazınızda, scrollViewDidScroll yöntemini uygulayın ve aşağıdaki gibi UIRefreshControl cihazınızda -beginRefreshing numaralı telefonu arayın.

Ancak, UIRefreshControl nesnesinin canlandırmaya devam eden durumu, beklediğiniz kadar yumuşak olmayacaktır. Ama işe yarıyor. sizin contentsize yüksekliğe sahip olmadığını

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if (scrollView.contentOffset.y < -98 && ![self.refresher isRefreshing]) { 
     [self.refresher beginRefreshing]; 
     //do all the work 
     [self.refresher endRefreshing]; 
    } 
} 
+0

Şimdilik iyi bir çözüm. –

+2

Dikkat et, ScrollViewDidEndDragging içine koymak daha iyidir: –

0

bu sorunun temel nedenini keşfetmek Çok ilgi self.collectionView.alwaysBounceVertical = YES;

İlgili konular