SORU
18 EYLÜL 2009, Cuma


UİScrollView çalışır beklenen ama scrollRectToVisible olarak: hiçbir şey yapmaz

Önce UIScrollView kullandım, şimdi de kullanıyorum ve hiç bir sorun yoktu. Ben şimdi ekleme için eski bir uygulama ve süre çalışır beklendiği gibi (ben göz içeriğini kaydırma ile benim parmak, tüm sınırları ve boyutlarda Kur yani orada hiçbir boş alan içeriği, vb.), Ben sadece scrollToRectVisible çalıştıramıyorum. Hatta sadece 0,0 konumuna gelir, böylece çağrı basitleştirilmiş var:

 [scrollView scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:YES];

ya 0,200 taşıyın:

 [scrollView scrollRectToVisible:CGRectMake(0, 200, 10, 10) animated:YES];

Ben bile bunu test etmek için hızlı bir uygulama yapılmış ve scrollRectToVisible beklediğim gibi orada bulabilirim. Ama benim eski uygulamasında, bir şey yapmak için görünmüyor olabilir.

Bu scrollView setContentOffset: ile ilerleyin yapabilirim ama benim istediğim bu değil.

Bu scrollView ve içeriğini İB tarafından uç olarak tanımlanan ve bir İBOutlet ile kullanılır. Benim app scrollView işlemek için kullanıyorum sadece kodudur

 [scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, imageView.frame.size.height)];

(Sadece yatay değil, dikey kaydırma ile ilgileniyorum).

Kimse böyle bir sorun yaşamıştır?

Bu scrollView her iki apps özellikleri karşılaştırdım ve aynıdır.

EK:

Çerçeve benim scrollViews: boş 0.000000 boş 0.000000 480.000000 179.000000

ContentSize benim scrollViews: boş 0.000000 324.000000

Hala gitmek için istiyorum rect zaten görünür gibi davranıyor ve hiçbir kaydırma gereklidir. Eğer böyle oldu emin değilim. Bu sadece en aptalca şey. Çözmek için çok kolay bir şey gibi görünüyor...

EK #2:

Bu scrollRectToVisible olmadan yapıyorum o kadar

CGPoint point = myRect.origin;
if (![clefScrollView pointInside:point withEvent:nil]) {
    point.x = 0;
    if (point.y > clefScrollView.contentSize.height - clefScrollView.bounds.size.height)
        point.y = clefScrollView.contentSize.height - clefScrollView.bounds.size.height;
    [clefScrollView setContentOffset:point animated: YES];
}

Bu scrollView hakkında her şey beklendiği gibi çalışır, ama scrollRectToVisible. ? NEDEN? Herhangi bir çılgın tahminler?

CEVAP
26 Kasım 2009, PERŞEMBE


Bir ay sonra, ve sonunda çözdüm. Alternatif yukarıda iyi çalışırken, beni rahatsız ediyor ve sonunda anlamak zorunda kaldım. Biraz aptalca bir hata oldu olduğu ortaya çıktı.

İşte bu scrollView yaptığım yerde benim viewDidLoad, eski kod:

[clefScrollView setContentSize:CGSizeMake(clefScrollView.contentSize.width, clefView.frame.size.height)];

ScrollView bir yükseklik veya genişlik değeri 0 olamaz! Bu ScrollView boyutları geçerli bir boyutu ile karşı karşıya olduğunu tahmin ettim çünkü bana geçmişi var, ve bir boyutu sıfır olması eksikti!

Bu gibi çalışır:

[clefScrollView setContentSize:CGSizeMake(clefView.frame.size.width, clefView.frame.size.height)];

Bu birileri yardımcı olur umarım. Kesinlikle çok zaman bu hata ayıklama için harcadı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012