2012-07-28 213 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 
    } 
}