Comment appeler la Liste Contrôleur de UITableViewCell.accessoryView?
D'abord je tiens à dire que je suis vraiment nouveau dans l'ipad/ipod/iphone de développement, et à objective-c trop.
Avec cela étant dit, je suis en train de développer une petite application de ciblage de l'iPad, à l'aide de Xcode et IB, en gros, j'ai un tableau, pour chaque UITableViewCell dans le tableau, j'ai ajouté à la accessoryView un bouton qui contient une image.
Voici le code:
UIImage *img = [UIImage imageNamed:@"myimage.png"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect frame = CGRectMake(0.0, 0.0, img.size.width, img.size.height);
button.frame = frame; //match the button's size with the image size
[button setBackgroundImage:img forState:UIControlStateNormal];
//set the button's target to this table view controller so we can interpret touch events and map that to a NSIndexSet
[button addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
button.backgroundColor = [UIColor clearColor];
cell.accessoryView = button;
Donc bon, maintenant, le problème est que je veux une Liste de contrôle d'apparaître lorsqu'un utilisateur appuie sur le bouton de la accessoryView d'une cellule.
J'ai essayé cela sur la "accessoryButtonTappedForRowWithIndexpath" de la tableView:
UITableViewCell *cell = [myTable cellForRowAtIndexPath:indexPath];
UIButton *button = (UIButton *)cell.accessoryView;
//customViewController is the controller of the view that I want to be displayed by the PopOver controller
customViewController = [[CustomViewController alloc]init];
popOverController = [[UIPopoverController alloc]
initWithContentViewController: customViewController];
popOverController.popoverContentSize = CGSizeMake(147, 122);
CGRect rect = button.frame;
[popOverController presentPopoverFromRect:rect inView:cell.accessoryView
permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
Le problème avec ce code c'est qu'il montre la Liste en haut de l'Affichage de l'application, lors du débogage, j'ai vu les valeurs de "rect" et ils sont:
x = 267
y = 13
donc je pense que c'est assez évident pourquoi la Liste s'affiche alors sur le point de vue, donc ma question est, comment puis-je obtenir les valeurs correctes pour la Liste qui apparaîtra juste en dessous du bouton sur le accessoryView de la cellule?
Aussi, comme vous pouvez le voir, je vais la raconter à utiliser la "cellule.accessoryView" pour le "inView:" attribut, c'est ok?
OriginalL'auteur Vic | 2010-05-12
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser
button.bounds
au lieu debutton.frame
depuis le rect est par rapport à lainView
.Notez également que si la cellule est près du bas de l'écran, la liste peut ne pas apparaître à la bonne taille parce que vous êtes forçant la flèche dans la direction. Vous devez gérer cela manuellement ou simplement utiliser du Tout.
OriginalL'auteur
Changer inView:de la cellule.accessoryView à inView:cellule
OriginalL'auteur vanhouse
voici pour swift:
OriginalL'auteur donio20