gpt4 book ai didi

iphone - 圆形自定义按钮的事件区域较小

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:51 26 4
gpt4 key购买 nike

我有一个自定义按钮(使用圆形图像作为其自定义 View )。问题是:自定义按钮的事件区域太大,如果我在按钮外至少点击 100 像素,它仍然会被注册为按钮上的点击。这会导致意外点击。

注意:- 我不想减小按钮的大小,因为它已经比最低要求大了。我想减少可点击空间。

如何缩小这些按钮上的事件区域?

最佳答案

如果您的按钮还不是 UIButton 的子类,则必须实现这一点。您可以覆盖 pointInside:withEvent: 以将“可触摸”区域更改为您想要的任意形状。一个简单地改变 hit box 的 insets 的子类可能看起来像这样:

// --HEADER--
@interface TouchInsetButton : UIButton
@property (nonatomic, assign) UIEdgeInsets touchInsets;
@end

// --IMPLEMENTATION--
@implementation TouchInsetButton
@synthesize touchInsets = _touchInsets;

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
CGRect modifiedHitBox = UIEdgeInsetsInsetRect([self bounds], _touchInsets);
return CGRectContainsPoint(modifiedHitBox, point);
}

@end

请注意,如您所见,UIButton 通常使用比其边界稍大的边界框。仅使用此子类而不设置任何 insets 将导致按钮只接受完全在按钮边界内的点击。

关于iphone - 圆形自定义按钮的事件区域较小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11545623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com