Elma dolaylı olarak iOS Human Interface Guidelines yılında kaydırma göstergelerini gösteren sürekli vazgeçirmek ama kurallar bir nedeni sadece yönlendirme amaçlı referans onlar don Her senaryoyu hesaba katıyorsunuz ve bazen onları görmezden gelmeniz gerekebilir.
Herhangi bir içerik görünümünün kaydırma göstergeleri, bu içerik görünümlerinin UIImageView
alt görünümleridir. Bu, olabildiğince erişim onun diğer subviews (yani myScrollView.subviews
) ve herhangi biri gibi kaydırma göstergeleri değiştirmek gibi bir UIScrollView
kaydırma göstergeleri seçerek diğer UIImageView
(örneğin scrollIndicatorImageView.backgroundColor = [UIColor redColor];
).
#define noDisableVerticalScrollTag 836913
#define noDisableHorizontalScrollTag 836914
@implementation UIImageView (ForScrollView)
- (void) setAlpha:(float)alpha {
if (self.superview.tag == noDisableVerticalScrollTag) {
if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleLeftMargin) {
if (self.frame.size.width < 10 && self.frame.size.height > self.frame.size.width) {
UIScrollView *sc = (UIScrollView*)self.superview;
if (sc.frame.size.height < sc.contentSize.height) {
return;
}
}
}
}
if (self.superview.tag == noDisableHorizontalScrollTag) {
if (alpha == 0 && self.autoresizingMask == UIViewAutoresizingFlexibleTopMargin) {
if (self.frame.size.height < 10 && self.frame.size.height < self.frame.size.width) {
UIScrollView *sc = (UIScrollView*)self.superview;
if (sc.frame.size.width < sc.contentSize.width) {
return;
}
}
}
}
[super setAlpha:alpha];
}
@end
aslen this source yansıtılır:
en popüler çözüm aşağıdaki kod gibi görünüyor.
Bu, alpha özelliği için bir özel belirleyici tanımlayan UIImageView
için bir kategori tanımlar. Bu, UIScrollView
için temeldeki kodun bir noktasında, onu gizlemek için kaydırma göstergesinin alpha özelliğini 0'a ayarlayacağından çalışır. Bu noktada, bizim kategorimiz üzerinden çalışacak ve eğer UIScrollView
barındırma doğru etiketi varsa, ayarlanan değeri göz ardı ederek görüntülenecektir.
Bu çözümü kullanmak için, UIScrollView
numaranızın uygun etikete sahip olduğundan emin olun.
Kaydırma göstergesini UIScrollView
göründüğü andan itibaren görüntülemek isterseniz, sadece görüntülendiğinde kaydırma göstergelerini yanıp sönmeye başlayabilirsiniz.g
- (void)viewDidAppear:(BOOL)animate
{
[super viewDidAppear:animate];
[self.scrollView flashScrollIndicators];
}
Ek SO referanslar:
Cudnt anladın mı, dokunmatik ekranda görünen scrollviews nelerdir? Ayrıca kaydırma çubukları nasıl kayboluyor? Bir zamanlayıcı koydu mu yoksa bir sonraki görüşe gidip geri geliyor musun? – IronManGill
evet, [myscrollView flashScrollIndicators] kullanıyorum; onlar viewLoad üzerinde görünür ve daha sonra bir kaç saniye sonra kayboldu. Ben onları alwayz görünür yapmak istiyorum .. Hayır geri gidiş ve fro yok. – Honey
bunu kontrol edin http://stackoverflow.com/questions/3290813/uiscrollview-indicator-always-show – Divya