我想添加一個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:
調用修復它。
我只是添加更多按鈕,並且它們從不重疊。此外,如果UIButton是我添加的唯一子視圖,問題仍然存在。 – 2010-05-29 14:53:59
也許你可以發佈你的所有代碼。從原始圖片(img src現在被打破),它肯定會出現一個視圖的症狀,阻止觸摸事件變得更低。如果你發佈了一些東西,其他人可能會看到發生了什麼事情,或許你錯過了一些東西。隨着你在這裏的代碼,這一切看起來是正確的。 – coneybeare 2010-05-29 20:06:57
準確地說,這是我所有的代碼:) – 2010-05-29 20:11:51