Question

J'ai un projet iPhone débutant en cours. J'ai un TableView, qui est juste une zone de liste avec un tas d'entrées et une petite UIView sur le fond. Voir la photo.

Le problème est que la UIView devient essentiellement une partie de la zone de liste et apparaîtra que lorsque je fais défiler jusqu'au dernier élément de la TableView.

Je voudrais que le UIView à ancrer sur le fond et ne bougent jamais. Je l'ai regardé tout autour de l'Interface Builder et ne trouve rien (bien que dans sa défense, je suis un noob total iPhone dev). Comment puis-je accomplir un truc comme ça?

texte alt http://www.sqleffects.com/mystuff/ibissue.jpg

Était-ce utile?

La solution 4

La ligne de fond est la suivante: si vous créez votre projet basé sur le modèle de navigation, vous ne pouvez pas redimensionner la UITableView, période.

Donc, pour faire ce que je veux, je dois essentiellement repartir de zéro et de choisir une vue ou modèle basé fenêtre et déposez-le sur uitableview manuellement.

Autres conseils

Ok, ce que vous avez besoin est un UIView, qui contient

  1. un UIView, qui agit comme TableViewController et doit donc mettre en œuvre les protocoles UITableViewDelegate et UITableViewDataSource (mais il NE DOIT PAS être dérivé de UITableViewController directement, car en faisant de sorte que le UITableView prendra automatiquement toute la taille de l'écran (à l'exception des barres d'outils, navbars et / ou tabbars))
  2. une autre UIView, celui que vous souhaitez placer au fond

en le faisant, vous pouvez créer un UITableView dans IB (pas UITableViewController!) Et connectez-vous avec la propriété UITableView dans votre UIView (celui mentionné en 1).

en utilisant cette méthode, il est possible de donner la UITableView une taille fixe (que vous devrez, pour avoir de la place au fond de votre deuxième UIView)

Pour construire au large de la réponse de gabtub, le UIView contenant votre point de vue de la table et votre vue de dessous n'a pas besoin de mettre en œuvre les méthodes UITableViewDelegate et UITableViewDataSource.

Comme il semble que vous construisez avec un contrôleur de vue, je ferais votre contrôleur principal de vue une sous-classe de UIViewController (au lieu d'utiliser UITableViewController). Vous pouvez ensuite ajouter votre UITableView et votre UIView l'instance de vue du UIViewController.

Je fais alors votre sous-classe UIViewController mettre en œuvre les protocoles UITableViewDelegate et UITableViewDataSource - vous finirez avec quelque chose qui ressemble (sage code) à votre ancien sous-classe UITableViewController, mais il est la propriété de vue sera le UIView sous-jacente au lieu de par exemple UITableView (si vous fouillez dans le débogueur, vous pouvez voir la [vue UITableViewController] et [UITableViewController tableView] retourne le même objet)

L'un des avantages par rapport à la suggestion de gabtub est il vous évite de créer un unique sous-classe UIView, puisque vous avez probablement déjà obtenu un unique sous-classe UIViewController (ou, avait auparavant une sous-classe UITableViewController unique).

Le problème est probablement, qu'en ce moment, le UIView est une vue en bas de page de la section, et est donc contenu dans la vue du tableau.

Si vous supprimez le UIView de la TableView, l'échelle du TableView pour faire de la place pour le UIView et un peu plus et de mettre votre UIView où vous le voulez, il sera probablement ajouté à la superview du TableView. Vous pouvez ensuite redimensionner la TableView à la taille correcte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top