web-dev-qa-db-ja.com

UITableView、iPhoneのスクロールバーの幅と色を変更します

スクロールバーを表示したいのか、使わないのかしかわかりませんでした

tableView.showsVerticalScrollIndicator = YES/NO;

しかし、色、幅、そして可能であれば他の機能のためにスクロールバーをカスタマイズするにはどうすればよいですか?

どんな助けでも大歓迎です。

編集:

このアイデアは、MKMapKitでGoogleロゴを見つけて、表示されたままになるようにどこかに再配置する必要があるコードスニペットから得ました。次の方法で、UItbaleviewのスクロールバーにカスタム画像を設定できます。しかし、スクロールバーのサイズを変更しても何も見つかりませんでした。

-(void) ViewDidLoad
{
UIImageView *testView = [self.tableView.subviews objectAtIndex:1];
    UIImage *Img = [UIImage imageNamed:@"image.png"];
    [testView setImage:Img];
}

編集:Nektoによって提案されたように、幅を変更するために以下を使用することができます。

CGRect frame = testView.frame; 
frame.size.width = 10; //set any value you want.
testView.frame = frame;
23
chatur

スクロールインジケーター:のスタイルのみを設定できます。

スクロールインジケーターのスタイル。

@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle

スタイル:

スクロールインジケーターのスタイルスクロールインジケーターのスタイル。これらの定数を使用して、indicatorStyleスタイルの値を設定します。

typedef enum {
    UIScrollViewIndicatorStyleDefault,
    UIScrollViewIndicatorStyleBlack,
    UIScrollViewIndicatorStyleWhite
} UIScrollViewIndicatorStyle;

例:

tableView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
40
Nekto

以下を使用して、スクロールインジケーターの色を変更できます。

tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite;

お役に立てれば。

7
Birju

この優れたオープンソースのカスタムスクロールバーをプロジェクトに追加できます。完全にカスタマイズ可能です: https://github.com/BasheerSience/BRScrollBar

3
Basheer_CAD

スウィフト-3,4

メソッド "scrollViewDidScroll"をオーバーライドできない場合(他の機能やページングにこれを使用している可能性があります)、これを試してください!!

func setScrollIndicatorColor(color: UIColor) {
        for view in self.tableView.subviews {
            if view.isKind(of: UIImageView.self),
                let imageView = view as? UIImageView,
                let _ = imageView.image  {
                imageView.image = nil
                view.backgroundColor = color
            }
        }

        self.tableView.flashScrollIndicators()
    }

viewDidAppear()では、このメソッドを呼び出すことができます。

2
iMRahib

Swift 3

collectionView.indicatorStyle = UIScrollViewIndicatorStyle.white

1
ttorbik

元のスクロールバーを非表示にして、カスタムスクロールバーを使用してスクロールできます。

– (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 

コンテンツのスクロールに使用できます。カスタムバーをテーブルに追加するだけです。

1
Manali

私は他の方法を見つけませんでしたが、これは:

UITableView *v;
[v setIndicatorStyle:<#(UIScrollViewIndicatorStyle)#>];

利用できるスタイルは3つだけです。あなただけがあなた自身のUIScrollViewIndicatorStyleを実装する方法を見つけるが、これを行う方法を想像することさえできない場合:それらはUIKitフレームワーク(UIScrollView.hで宣言されている)の奥深くに実装されており、フラグを設定することしかできません、魔女は使用するスタイルを知るためにUIScrollViewによって使用されます。したがって、他の方法はわかりません。新しいスタイルを実装し、そこにフラグを立てる必要があります。それは可能ですか?

0
SentineL

3つのデフォルトの色スタイルでインジケーターの色を変更します。

TextField.indicatorStyle = UIScrollViewIndicatorStyleWhite;

0
pallavi