Je n'ai trouvé que si l'on veut afficher la barre de défilement ou ne pas utiliser
tableView.showsVerticalScrollIndicator = YES/NO;
mais comment puis-je personnaliser la barre de défilement pour la couleur, la largeur et, si possible, d'autres fonctionnalités?
Toute aide est la bienvenue.
MODIFIER:
J'ai eu cette idée à partir d'extraits de code où il faut trouver le logo Google dans MKMapKit et le déplacer quelque part pour qu'il reste visible. En appliquant la méthode suivante, il est possible de définir une image personnalisée sur la barre de défilement de UItbaleview. Mais je n'ai rien trouvé sur la modification de la taille de la barre de défilement.
-(void) ViewDidLoad
{
UIImageView *testView = [self.tableView.subviews objectAtIndex:1];
UIImage *Img = [UIImage imageNamed:@"image.png"];
[testView setImage:Img];
}
EDIT: Comme suggéré par Nekto, vous pouvez utiliser ce qui suit pour changer la largeur.
CGRect frame = testView.frame;
frame.size.width = 10; //set any value you want.
testView.frame = frame;
Vous ne pouvez définir que le style de indicateurs de défilement:
Le style des indicateurs de défilement.
@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle
Styles:
Style des indicateurs de défilement Style des indicateurs de défilement. Vous utilisez ces constantes pour définir la valeur du style indicatorStyle.
typedef enum {
UIScrollViewIndicatorStyleDefault,
UIScrollViewIndicatorStyleBlack,
UIScrollViewIndicatorStyleWhite
} UIScrollViewIndicatorStyle;
Par exemple:
tableView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
Vous pouvez changer la couleur de l'indicateur de défilement en utilisant:
tableView.indicatorStyle=UIScrollViewIndicatorStyleWhite;
J'espère que cela t'aides.
Vous pouvez ajouter cette grande barre de défilement personnalisée open source à votre projet. Elle est totalement personnalisable: https://github.com/BasheerSience/BRScrollBar
Swift-3,4
Si vous ne pouvez pas remplacer la méthode "scrollViewDidScroll", vous l'utilisez peut-être pour une autre fonctionnalité ou pour la pagination. Essaye ça !!
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()
}
dans viewDidAppear (), vous pouvez appeler cette méthode.
Vous pouvez masquer la barre de défilement d'origine et faire défiler à l'aide de votre barre de défilement personnalisée.
– (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
peut être utilisé pour faire défiler le contenu, ajoutez simplement votre barre personnalisée à la table.
Je n'ai pas trouvé d'autre moyen que celui-ci:
UITableView *v;
[v setIndicatorStyle:<#(UIScrollViewIndicatorStyle)#>];
Il n'y a que 3 styles disponibles. Si seulement vous trouviez le moyen d’implémenter votre propre UIScrollViewIndicatorStyle, mais je n’imagine même pas COMMENT le faire: ils sont implémentés profondément dans le framework UIKit (déclaré dans UIScrollView.h), et vous ne pouvez définir qu’un indicateur, qui utilisé par UIScrollView pour savoir quel style utiliser. Donc, je ne vois pas d'autre moyen: vous aurez besoin d'une manière ou d'une autre d'implémenter un nouveau style et un nouveau drapeau. Est-ce possible?
Pour Swift 3
collectionView.indicatorStyle = UIScrollViewIndicatorStyle.white
changer la couleur de l'indicateur avec 3 styles de couleurs par défaut.
TextField.indicatorStyle = UIScrollViewIndicatorStyleWhite;