2010-07-01 8 views
0

J'ai 5 boutons ronds d'affilée, chacun de 40x40 pixels. Entre chacun, j'ai 20 pixels. 40x40 pixels est trop petit pour toucher, mais comme j'ai 20 pixels d'espace entre chaque bouton, je peux étendre la zone tactile du bouton à 60x60 pixels, ce qui le rend facile à toucher. Je pourrais simplement utiliser la solution sale de créer une image transparente carrée de 60x60 pixels, mettre ceci sur le bouton et rendre cela touchable, mais je sais qu'il est possible d'étendre une zone tactile en créant une classe personnalisée et en changeant un paramètre.iphone - comment étendre une zone tactile?

Je sais que c'est possible parce que j'ai vu cela fait avant (mais je ne trouve pas l'URL). Je sais que c'est quelque chose lié à hitTest.

Comment cela peut-il être fait? Merci.

Répondre

3

Eiko a absolument raison. Voici un code simple que vous pouvez utiliser indépendamment de l'emplacement du bouton que quelqu'un m'a donné pour agrandir le cadre du bouton Info.

CGRect newInfoButtonRect = CGRectMake(infoButton.frame.origin.x - 25, 
              infoButton.frame.origin.y - 25, 
              infoButton.frame.size.width + 50, 
              infoButton.frame.size.height + 50); 
    [infoButton setFrame:newInfoButtonRect]; 

Vous pouvez regarder si vous utilisez une image de fond, par opposition à une image (button setBackgroundImage: vs button setImage: forState:), car une image d'arrière-plan étirer avec le cadre tout en une image normale ne sera pas.

+0

merci !!!!!!!!!!!! – SpaceDog

0

Vous pouvez toujours agrandir son cadre, par exemple yourButton.frame = CGMRectMake(0,0,60,60); Je le fais généralement en ajoutant l'un des boutons d'information.

Questions connexes