Подтвердить что ты не робот

Изменение ширины и цвета полосы прокрутки в UITableView, iphone

Я мог только найти, нужно ли отображать полосу прокрутки или не использовать

tableView.showsVerticalScrollIndicator = YES/NO;

но как я могу настроить полосу прокрутки для цвета, ширины и, если возможно, других функций?

Любая помощь будет принята с благодарностью.

EDIT:

Я получил эту идею из фрагментов кода, где нужно найти логотип Google в MKMapKit и переместить его где-нибудь, чтобы он оставался видимым. по следующему методу можно настроить пользовательское изображение на полосу прокрутки UItbaleview. Но я ничего не нашел при изменении размера полосы прокрутки.

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

EDIT: Как было предложено Nekto, вы можете использовать следующее, чтобы изменить ширину.

CGRect frame = testView.frame; 
frame.size.width = 10; //set any value you want.
testView.frame = frame;
4b9b3361

Ответ 1

Вы можете установить только стиль прокрутки:

Стиль индикаторов прокрутки.

@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle

Стили:

Стиль индикатора прокрутки Стиль прокрутки. Эти константы используются для установки значения стиля indicatorStyle.

typedef enum {
    UIScrollViewIndicatorStyleDefault,
    UIScrollViewIndicatorStyleBlack,
    UIScrollViewIndicatorStyleWhite
} UIScrollViewIndicatorStyle;

Например:

tableView.indicatorStyle = UIScrollViewIndicatorStyleBlack;

Ответ 2

Вы можете изменить цвет индикатора прокрутки, используя:

tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite;

Надеюсь, что это поможет.

Ответ 3

Вы можете добавить этот отличный прокруточный шаблон с открытым исходным кодом в свой проект, его полностью настраиваемый: https://github.com/BasheerSience/BRScrollBar

Ответ 4

Свифта-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() вы можете вызвать этот метод.

Ответ 5

Вы можете скрыть исходную полосу прокрутки и прокручивать ее с помощью специальной полосы прокрутки.

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

можно использовать для прокрутки содержимого, просто добавьте свою таблицу в таблицу.

Ответ 6

Для Swift 3

collectionView.indicatorStyle = UIScrollViewIndicatorStyle.white

Ответ 7

Я не нашел другого способа, кроме этого:

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

Существует только 3 доступных стиля. Если только вы найдете способ реализовать свой собственный UIScrollViewIndicatorStyle, но я даже не могу представить, КАК это сделать: они реализованы глубоко в платформе UIKit (объявлено в UIScrollView.h), и вы можете установить флаг только для того, используемый UIScrollView, чтобы знать, какой стиль использовать. Итак, я не вижу другого способа: вам нужно каким-то образом реализовать новый стиль и флаг. Возможно ли вообще?

Ответ 8

измените цвет индикатора на 3 цвета по умолчанию.

TextField.indicatorStyle = UIScrollViewIndicatorStyleWhite;