Изменение ширины и цвета полосы прокрутки в 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;
Ответы
Ответ 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;