iOS: Ajouter des sous-vue avec une position fixe sur l'écran
Comment puis-je corriger une sous-vues position sur l'écran (en particulier dans UIScrollView et UITableView)? Je pense que dans le storyboard
[self.view addSubview:aSubView];
ne fonctionne plus.
Des idées?
EDIT #1: je suis à l'aide d'un UITableViewController, pas un simple UITableView.
EDIT #2:
CGRect fixedFrame = self.menuViewRelative.frame;
fixedFrame.origin.y = 0 + scrollView.contentOffset.y;
self.menuViewRelative.frame = fixedFrame;
menuViewRelative = [[UIView alloc] init];
menuViewRelative.backgroundColor = [UIColor grayColor];
menuViewRelative.frame = CGRectMake(0.0, 0.0, 320.0, 50.0);
[self.view addSubview:self.menuViewRelative];
veuillez étoffer votre question un peu.... Je n'obtiens pas ce que vous voulez faire.
dans ios 6 u peut utiliser des contraintes dans xib
Je veux fixer la position d'une sous-vue (UIView) de sorte qu'il n'est pas de défiler avec le contenu d'un UITableView. La sous-vue doit rester fixe sur l'écran..
Vous ajoutez de la vue qui ne doit pas faire défiler comme un frère ou une sœur de la vitesse de défilement de la vue. Supposons que votre scrollview ou tableview est un enfant de l'affichage/fenêtre
Désolé, j'ai oublié de dire que c'est un UITableViewController :S Excusez-moi. Toute idée, de toute façon?
dans ios 6 u peut utiliser des contraintes dans xib
Je veux fixer la position d'une sous-vue (UIView) de sorte qu'il n'est pas de défiler avec le contenu d'un UITableView. La sous-vue doit rester fixe sur l'écran..
Vous ajoutez de la vue qui ne doit pas faire défiler comme un frère ou une sœur de la vitesse de défilement de la vue. Supposons que votre scrollview ou tableview est un enfant de l'affichage/fenêtre
XY
, il suffit d'ajouter votre vue fixe en tant que sous-vue de XY.Désolé, j'ai oublié de dire que c'est un UITableViewController :S Excusez-moi. Toute idée, de toute façon?
OriginalL'auteur filou | 2012-12-01
Vous devez vous connecter pour publier un commentaire.
Comme d'autres l'ont noté, ce serait un peu plus facile si vous n'utilisez pas un
UITableViewController
, mais il n'est pas difficile de toute façon.UITableView
est une sous-classe deUIScrollView
, de sorte que la vue de la table du délégué du votreUITableViewController
exemple dans ce cas) recevra égalementUIScrollViewDelegate
les appels de méthode. Tout ce que vous avez à faire est de mettre en œuvre la méthode qui est appelée à chaque fois de défilement de compenser les variations et d'ajuster le cadre de votre "fixe".Quelque chose comme ceci:
Remplacer 20 par le nombre de points que vous le souhaitez à partir du haut de l'affichage de la table. Vous avez encore ajouter
self.fixedView
comme un subliew deself.view
, ce sera juste assurez-vous qu'il dirait qu'il est dans une position fixe au-dessus de la vue de la table.Edit: avec le code que vous avez posté, je devine votre version devrait ressembler à ceci:
Où avez-vous mis ce code? Vous ne devriez pas avoir ces 4 autres lignes dans cette méthode, ils devraient rester dans votre viewDidLoad ou à l'endroit où vous avez eu. La méthode que j'ai posté t de travail, il vous suffit de l'utiliser comme je l'ai décrit.
Découvrez le modifier à ma réponse, si vous le mettre de cette façon de travailler.
J'utilise ce 4 lignes dans la même méthode, parce que j'ai besoin de savoir quand y < -50 à laisser la sous-vue apparaissent :S
Eh bien, vous le faites mal. J'ai répondu à votre question, vous devez accepter le droit de réponse et si vous avez des questions, demandez-leur. Je ne peux pas lire dans votre esprit.
OriginalL'auteur Filip Radelic
Pouvez-vous ajouter votre sous-vue dans la fenêtre, comme:
Cela fonctionne pour moi. J'ai ajouté une photo de la position d'info voir dans un tableau dynamique de vue.
OriginalL'auteur Mavlarn
Si sa simple vue-contrôleur qui contient une vue de table, [self.vue addSubview:aSubView] devrait fonctionner. Mais si ses une table view controller, il l'habitude de travailler.
Vous ne pouvez pas. L'utilisation d'un simple UIViewController et ajouter un UITableView comme un sous vue. Puis suivre la façon normale de liaison de la source de données, le remplissage de données, etc. Une fois cela fait, vous pouvez utiliser [self.vue addSubview:afficher]
Il pourrait y avoir du travail pour obtenir un fixe positionné élément à l'intérieur d'un tableau. Mais il n'est pas conseillé. Plutôt, la fixation de votre vue-contrôleur est la bonne façon de le faire.
OriginalL'auteur Kiran Kumar
Il peut être fait, en déplaçant sous (vos) vue de UIScrollView super vue de la scrollview.
Ici est simple exemple:
Lieu/set votre bouton de défilement de la vue (pas à l'intérieur de défilement de la vue), comme illustré ici dans cette capture d'écran. Et aussi de mettre le bouton de contraintes (position) à l'égard de super vue de votre scrollview.
Voici réf. instantané de la hiérarchie de la position de chaque point de vue sur chacun des autres.
OriginalL'auteur Krunal