2012-06-15 18 views
19

Hücreleri döndürebildiğimi ve kaydırma görünümünü "baş aşağı" görüntüleyerek gösterimi hareket ettirebileceğimi fark ettim, ancak diğer birçok rotasyon gerektiriyor ve Tablonun düzgün bir şekilde kaydırılması için bilgilerin işlenmesi gerekiyor.UIScrollView göstergesini sağdan sola doğru hareket ettirmek mümkün mü?

+1

solak kullanıcılar sağdaki kaydırma çubukları var ve sağ elini kullanan kullanıcılar soldaki kaydırma çubukları var ki bu sistem genelinde ayarı olmalıdır. Bunu yıllardır söylüyorum. – Cyrille

cevap

70

Aslında kez

sayesinde sol tarafında küçük bir alana göstergeyi kısıtlamak için scrollIndicatorInsets özelliğini değiştirerek mümkündür: (

tableView.scrollIndicatorInsets = UIEdgeInsetsMake(0,0,0,tableView.bounds.size.width-10); 
+1

İyi, bu, 10 'kaydırma görünümünün genişliğine uyan sabitinize bağlı olsa da ... teknik olarak güvensiz bir varsayımdır, ancak pratik olarak uygulanabilir. – rickster

+0

Sadece daha fazla açıklığa kavuşturmak için, kaydırma göstergesine değil, göstergenin kendisinin genişliği 10 olmalıdır. Sanırım bu, @rickster'in söylediği şey. –

+0

Uh, doğru. Teşekkürler! – rickster

7

Ben Jeremy Jay'in çözüm gibi I gerçi Bunu test etmediniz), ama sadece fikri iyice araştırmak için ... denemeye değer başka bir şey (yine de test edilmemiş olsa da):

İki kaydırma görünümünü kullanın.

Bir kaydırma görünümü (buna "gerçek" olanı diyelim) içeriğinizi içerir, ancak göstergeleri gizlidir. Başka bir kaydırma görünümünde içerik yoktur, ancak "gerçek" kaydırma görünümününkiyle eşleşecek şekilde ayarlanmış olan contentSize vardır. "Gerçek" kaydırma görünümünün contentOffset değiştiğinde (temsilci iletileriyle görüldüğü gibi), eşleşecek "sahte" kaydırma görünümünün ofsetini değiştirin. (İçerik görünümü olmadan kaydırma görünümünü kullanma fikri hakkında daha fazla bilgi için WWDC 2012'deki kaydırma görünümleri oturumuna bakın.)

Teoride (bunu henüz test etmedim), artık kaydırma göstergesi görünümünüz var. orijinal kaydırma görünümünüzden ayrıdır ve orijinal ile ilgili olarak istediğiniz yere yerleştirebilirsiniz. Orijinalin üzerine yerleştirin ve sola hareket ettirin/boyutlandırın, böylece solda dar bir şerit kaplar ve sol taraftaki bir kaydırma göstergesine sahip olursunuz. (Alternatif olarak, katman orjinalin üstüne yerleştirilir ve bir afine dönüşümü ile yatay olarak açılır.) UI'nizi çılgın bir şehre götürmek için tamamen başka bir yere koyun. (Ya da yapmayın.) Yine de üstüne katlanırsa dokunmalarını göz ardı ettiğinden emin olun.

2

Anakartları hesaplamak zorunda kalmadan veya ek tablo görünümleriyle uğraşmak zorunda kalmadan bunu (satır eylemleri kullanmıyorsanız) elde etmenin hızlı bir yolu, tablo görünümünü Y eksenine (flip) dönüştürmek ve sonra dönüştürmek olacaktır. Onları aldığın zaman hücreleri geri alırsın.

tableView.transform = CGAffineTransformMakeScale(1, -1); 

ve sonra

cell.transform = CGAffineTransformMakeScale(1, -1); 
İlgili konular