2016-03-04 4 views
1

bonjour je bouton créé dynamiquement sur mon statique TableView comme celui-ciComment ajouter l'indicateur sur le bouton Spinner créé Programmatically

override func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { 
     let footerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, tableView.frame.size.height)) 

    let button = UIButton(type: UIButtonType.System) as UIButton 
     button.frame = CGRectMake(0, 0, 414, 65) 

     button.setTitle(buttonTitle, forState: UIControlState.Normal) 
     button.addTarget(self, action:buttonAction, forControlEvents: UIControlEvents.TouchUpInside) 
     button.setTitleColor(UIColor.whiteColor(), forState:UIControlState.Normal) 
     button.titleLabel?.font = UIFont(name: Variables.MONTESERRAT_REGULAR, size: 20.0) 
    button.backgroundColor = UIColor().blueColor()  //top 
     footerView.addSubview(button!) 


     return footerView 
} 

Je veux montrer spinner sur le dessus de la touche lorsque sa clique dessus. Je sais comment faire la fonction de clic ou comment créer un spinner. Je ne sais pas comment placer le spinner sur le dessus du bouton à la place du titre de sorte que lorsque l'utilisateur clique sur le bouton, le titre se cache et le spinner se déplace sur le lieu du titre. J'espère que vous comprenez ce que je dis

+0

Ajoutez le curseur comme sous-vue du bouton. Définir le centre de spinner comme button.center et: [button addSubview: yourspinner]; –

Répondre

2
UIActivityIndicatorView *myspinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
    [myspinner setCenter:button.center]; 
    [button addSubview:myspinner]; 
+0

Merci beaucoup – user1hjgjhgjhggjhg

0
  1. Vous créez un spinner (UIActivityIndicatorView), font également à autohide (setHidesWhenStopped:)
  2. Vous ajoutez comme sous-vue à votre bouton (addSubview)
  3. vous le mettez dans le centre du bouton (setCenter:)
  4. le bouton est pressé, vous sETTITLE à une chaîne vide (setTitle:forControlState:) et exécutez la fileuse (startAnimating)
0

Voilà comment je le fais normalement, et il y a quelques comportements différents que vous pouvez utiliser:

let spinner = UIActivityIndicatorView(activityIndicatorStyle: .White) 

spinner.frame = CGRect(x: -20.0, y: 6.0, width: 20.0, height: 20.0) // (or wherever you want it in the button) 
spinner.startAnimating() 
spinner.alpha = 0.0 

button.addSubview(spinner) 

Vous pouvez modifier l'alpha en conséquence. Ou utilisez des propriétés masquées, arrêtez/démarrez l'animation, etc.