我使用UIButton
自動佈局。當圖像很小時,龍頭區域也很小。我可以想象幾種方法來解決這個問題:如何增加UIButton的Tap Area?
- 增加圖像大小,即在圖像周圍放置一個透明區域。這是不好的,因爲當你定位圖像時,你必須記住額外的透明邊界。
- 使用CGRectInset並增加尺寸。這不適用於自動佈局,因爲使用自動佈局,它會回落到原始圖像大小。
除了上述兩種方法之外,還有更好的解決方案來增加UIButton的tap區域嗎?
我使用UIButton
自動佈局。當圖像很小時,龍頭區域也很小。我可以想象幾種方法來解決這個問題:如何增加UIButton的Tap Area?
除了上述兩種方法之外,還有更好的解決方案來增加UIButton的tap區域嗎?
您可以簡單地調整按鈕的內容插入以獲得所需的大小。在代碼中,它看起來是這樣的:
button.contentEdgeInsets = UIEdgeInsets(頂:12,左:16,底部:12,右:16)
//或者如果你特別希望調整圖像周圍,而不是使用button.imageEdgeInsets
在界面生成器,它看起來就像這樣:
我不確定,但應該有一種方法來指定任何UIView的最小尺寸,這可能會解決您的問題,無需額外的工作。但說實話,在圖像周圍添加額外的透明背景是最好的解決方案。
您可以添加類別文件UIButton (extention)
到您的項目,它可以幫助你making-the-hit-area-larger-than-the-default-hit-area
非常容易。創建一個自定義的UIButton類。然後覆蓋pointInside ...方法並根據需要更改值。
#import "CustomButton.h"
@implementation CustomButton
-(BOOL) pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
CGRect newArea = CGRectMake(self.bounds.origin.x - 10, self.bounds.origin.y - 10, self.bounds.size.width + 20, self.bounds.size.height + 20);
return CGRectContainsPoint(newArea, point);
}
@end
這將需要更多的10點接觸面積爲雙方。
應該給它一個負值還是請解釋 – Shiva