アップルから値
static const int UIScrollViewHorizontalBarIndexOffset = 0;
static const int UIScrollViewVerticalBarIndexOffset = 1;
-(UIImageView *)scrollbarImageViewWithIndex:(int)indexOffset
{
int viewsCount = [[yourScrollview subviews] count];
UIImageView *scrollBar = [[yourScrollview subviews] objectAtIndex:viewsCount - indexOffset - 1];
return scrollBar;
}
-(void) viewDidLoad
{
//Some Code
//Get Scrollbar
UIImageView *scrollBar = [self scrollbarImageViewWithIndex: UIScrollViewVerticalBarIndexOffset];
//The try setting hidden property/ alpha value
scrollBar.hidden=NO;
}
ガットの参照が間接的にiOS Human Interface Guidelinesにスクロールインジケータを表示絶えず思いとどまらが、ガイドラインは、彼らドン、その理由のためだけのガイドラインですすべてのシナリオを考慮する必要があり、時にはそれらを丁寧に無視する必要があるかもしれません。
コンテンツビューのスクロールインジケータは、これらのコンテンツビューのサブビューがUIImageView
です。これは、任意UIImageView
(例えばscrollIndicatorImageView.backgroundColor = [UIColor redColor];
)を同じように使用すると、その他のサブビュー(即ちmyScrollView.subviews
)のいずれかとスクロール・インジケータを変更するであろうように、あなたがアクセスUIScrollView
のスクロールインジケータをできることを意味します。
#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
もともとthis sourceに入金されます。
最も人気のあるソリューションは、次のコードのように見えます。
alphaプロパティのカスタムセッターを定義するUIImageView
のカテゴリを定義します。これは、UIScrollView
の基になるコードのある点で、スクロールインジケータのalphaプロパティを非表示にするために0に設定するためです。この時点ではカテゴリが実行され、ホストのUIScrollView
に正しいタグがある場合、設定されている値は無視され、表示されたままになります。
このソリューションを使用するには、UIScrollView
に適切なタグがあることを確認してください。
あなたは瞬間からそのUIScrollView
をスクロールインジケータを表示したい場合はビューが.Eを表示されたら、単純にスクロールインジケータを点滅表示されます。グラム
- (void)viewDidAppear:(BOOL)animate
{
[super viewDidAppear:animate];
[self.scrollView flashScrollIndicators];
}
追加SO参照:
Cudntはあなたに触れているのですか?また、スクロールバーはどのように消えていますか?タイマーを入れてもらうか、次のビューに行くと戻ってくるのですか? – IronManGill
はい、私は[myscrollView flashScrollIndicators]を使用してtouch.whenにスクロールビューが表示されています。彼らはviewLoadに現れ、数秒後に姿を消しました。私はそれらをalwayzに見せたいと思います。 – Honey
これをチェックしてください http://stackoverflow.com/questions/3290813/uiscrollview-indicator-always-show – Divya