2010-05-29 65 views
2

我想添加一個UIButton到一個UIView,但我有一些麻煩讓它響應觸摸。UIButton只響應在一個小區域

我後,我爲它提供一個標籤返回UIButtons的方法:

- (UIButton*)niceSizeButtonWithTag:(int)tag { 

    UIButton * aButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [aButton setTag:tag]; 
    [aButton addTarget:self action:@selector(buttonWasTapped:) forControlEvents:UIControlEventTouchUpInside]; 

    CGRect newFrame = aButton.frame; 
    newFrame.size.width = 44; 
    newFrame.size.height = 44; 
    [aButton setFrame:newFrame]; 

    return aButton; 
} 

正如你可以看到我創建一個新的按鈕,增加了尺寸。 我以下列方式使用:

UIButton * anotherButton = [self niceSizeButtonWithTag:1]; 
[anotherButton setImage:[UIImage imageNamed:@"image" withExtension:@"png"] forState:UIControlStateNormal]; 
[anotherButton setCenter:CGPointMake(middleOfView)]; 
[aView addSubview:anotherButton]; 

我創造了很多這樣的按鈕,因此該方法的原因。

按鈕總是被創建並完美添加到子視圖中。我可以看到圖像,並且它們處於正確的位置。問題在於,他們只對一個小條帶的觸動作出反應。

在此附加的圖像,

alt text http://web1.twitpic.com/img/107755085-5bffdcb66beb6674d01bb951094b0e55.4c017948-full.png

  • 黃色顯示按鈕的全幀,
  • 紅色顯示將到觸摸作出響應的區域。
  • 灰色顯示按鈕添加到的視圖的一部分。

如果有人可以闡明爲什麼會發生這種情況,這將是非常有用的。

UPDATE:

我應該提一下我想這個按鈕添加到一個UIView這是一個UITableViewCell的子視圖。

更新2:

添加直接到工作的UITableViewCell,將它添加到了UIView上的UITableViewCell導致錯誤。

最後更新 問題原來是,我是發送包含按鈕上的UITableViewCell子視圖的背面的視圖。擺脫sendSubviewToBack:調用修復它。

回答

1

添加按鈕後,您是否有任何其他視圖添加到此包含視圖?嘗試將一些視圖的背景顏色設置爲blueColor,redColor和其他顏色,以更好地查看應用中的視圖堆棧。那麼你應該很容易看到是否有某種視圖阻止按鈕。

+0

我只是添加更多按鈕,並且它們從不重疊。此外,如果UIButton是我添加的唯一子視圖,問題仍然存在。 – 2010-05-29 14:53:59

+0

也許你可以發佈你的所有代碼。從原始圖片(img src現在被打破),它肯定會出現一個視圖的症狀,阻止觸摸事件變得更低。如果你發佈了一些東西,其他人可能會看到發生了什麼事情,或許你錯過了一些東西。隨着你在這裏的代碼,這一切看起來是正確的。 – coneybeare 2010-05-29 20:06:57

+0

準確地說,這是我所有的代碼:) – 2010-05-29 20:11:51