2012-07-28 117 views
0

我需要一种让用户在按下按钮时有更大触摸的方式。这样用户可以错过按钮,但仍然点击它。有没有办法做到这一点?我不想改变按钮类只是用户点击的区域..触摸时更大触摸

谢谢!我只是需要一些代码

+1

为什么你不能让按钮变大吗?您可以使按钮没有边框,并且有属性可以关闭按钮中的内容。否则,您必须将父级uiview作为触摸侦听器,然后必须确定哪个按钮距离触摸最近。 – Pareshkumar 2012-07-28 23:31:56

+0

我并没有真正使用“按钮”。我有一个自定义滑块,我无法滑动,因为图像太小。我不想增加图像,我只想在滑块周围留下一定的误差,以便用户可以更容易地访问它。:) – user1504566 2012-07-28 23:40:58

+0

我只将滑块放在UIView中,然后使用uiview和滑块将事件和如果触摸就在滑块的外面,那么父视图就会得到触摸,并确定它在哪里,并向滑块发送新的pos。 – Pareshkumar 2012-07-28 23:49:00

回答

1

1)你可以使用[yourButtonType setBackgroundImage:yourImage forState:UIControlStateNormal]; 你可以让你像这个样子,

------------------------------------------- 
| transparent, transparent, transparent | 
| transparent,yourOpaqueImage, transparent| 
| transparent, transparent, transparent | 
|------------------------------------------ 

事实上按钮框较大,但用户无法知道

2)你可以使用touchesEnded,这样

- (void)touchesEnded:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
    CGPoint location = [touch locationInView:self]; 
    CGRect btnRect = CGRectMake(btn.frame.origon.x-10,btn.frame.origon.y-10 , btn.frame.size.width+20, btn.frame.size.height+20); 
    if (CGRectContainsPoint(btnRect, location)) { 
     //sender your button 
    } 
}