iOS: Place UIView sur le dessus de la UITableView en position fixe
J'ai besoin de mettre une UIView (ads) sur le haut d'une UITableView dans mon iphone. Le problème est que lorsque j'ai faites défiler la table au fond de la ajouté UIView est le défilement avec la table. Ce que je veux, c'est pour être fixé sur le bas de l'écran. Est-il un moyen de le faire?
C'est le code que j'ai utilisé pour ajouter de la UIView à la table:
awView = [AdWhirlView requestAdWhirlViewWithDelegate:self];
awView.autoresizingMask=UIViewAutoresizingFlexibleLeftMargin;
[self.tableView addSubview:awView];
- les notes ... stackoverflow.com/questions/8258216/...
- Je pense que toutes les réponses ci-dessous sont confus. Ce que vous faire est d'ajouter votre point de vue à la superview de l'affichage de la table. Simple que cela.
Vous devez vous connecter pour publier un commentaire.
J'apprécie c'est une vieille question. Mais j'ai trouvé les réponses, soit avec de fausses informations dans la partie et de l'imprécision des extraits. Donc, pour ce que ça vaut la peine, voici comment j'ai ajouté un "flottant" de la vue vers le bas de mon
UITableViewController
's de vue. Oui, vous pouvez le faire, même si les réponses acceptées dit que vous ne pouvez pas.Dans votre
-viewDidLoad
méthode, vous pouvez créer une vue qui nous permettra de nom bottomFloatingView. C'est également une propriété.Assurez-vous d'ajouter un contenu encart en bas de votre tableau de vue, cela permettra d'éviter le masquage de la table de contenu avec votre flottante vue.
Ensuite, vous devez utiliser le
UIScrollViewDelegate
de mettre à jour le cadre de la floating point de vue.L'illusion que votre vue est coincé au fond. En réalité, ce point de vue se déplace tout le temps de défilement, et est toujours calculé à paraître dans le bas. Faites défiler les vues sont très puissants ! Et probablement l'un des plus sous-estimés UIKit classes je pense.
Voici donc mon code. Remarque la propriété, le contenu de l'encart sur la table et la vue de
-scrollViewDidScroll:
délégué de la méthode de la mise en œuvre. J'ai créé mon flottante vue dans mon storyboard qui est pourquoi vous ne pouvez pas voir que le programme d'installation.Aussi n'oubliez pas, vous devriez probablement aussi utiliser KVO pour observer les changements à la vue de la table de l'image. Il est possible que de changer au fil du temps, la façon la plus simple pour tester c'est par d'activer et de désactiver l'appel de la barre de statut dans le simulateur.
Dernière chose, si vous êtes en utilisant la section en-tête de vues dans votre vue de la table, ces opinions seront les plus afficher dans la vue de table de sorte que vous devrez apporter votre flottante vue de l'avant, le faire quand vous le changement de son cadre.
Ici est de savoir comment il a travaillé pour moi. L'Annonce reste en bas de la vue.
Dans le ViewDidLoad, dans YourController.m:
Puis ajoutez cette méthode quelque part dans le même .m fichier:
N'oubliez pas de déclarer awView.
Ajouter votre point de vue à la superview de la vue de la table (si possible;
UITableViewController
rend cela impossible).Ajouter votre point de vue à la vue de la table et de la repositionner dans le
-scrollViewDidScroll:
méthode du délégué (UITableViewDelegate
est un sous-protocole deUIScrollViewDelegate
).J'ai eu un problème similaire où je voulais ajouter un indicateur de chargement sur le dessus de mon UITableViewController. Pour résoudre ce problème, j'ai ajouté mon UIView comme une sous-vue de la fenêtre. Qui a résolu le problème. C'est la façon dont je l'ai fait.