gpt4 book ai didi

ios - UIButton+Category实现覆盖其他UIButton的触摸事件

转载 作者:行者123 更新时间:2023-11-29 02:47:14 25 4
gpt4 key购买 nike

我正在使用带有扩展名的 UIButton 的开源实现,因此它是可拖动的。

这是此 UIButton+NMCategory 文件的 header :

#import <UIKit/UIKit.h>

@interface UIButton (NMCategory)

@property(nonatomic,assign,getter = isDragEnable) BOOL dragEnable;
@property(nonatomic,assign,getter = isAdsorbEnable) BOOL adsorbEnable;

@end

在它的实现中,它实现了 onTouchesBeginonTouchesMovedonTouchesEnd 接口(interface),这些接口(interface)都正常工作,并且该按钮变得可拖动。

但是,在我的项目的其余部分中,使用了另一种可拖动按钮的实现。这是它的标题:

@interface SEFilterKnob : UIButton

@end

下面是它的使用方式:

[knob addTarget:self action:@selector(MyTouchDown:withEvent:) forControlEvents:UIControlEventTouchDown];
[knob addTarget:self action:@selector(MyTouchUp:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
[knob addTarget:self action:@selector(MyTouchMove:withEvent:) forControlEvents: UIControlEventTouchDragOutside | UIControlEventTouchDragInside];

当我将 UIButton+NMCategory 实现应用于整个项目时,SEFilterKnob 可拖动按钮停止工作,我看到它的触摸事件全部路由到 UIButton+NMCategory触摸事件实现。 (它自己的选择器没有被调用)

我不熟悉 Obj-C 的类别功能,有人可以帮忙解释一下为什么会发生这种情况吗?谢谢!

最佳答案

不幸的是,您不能将两者结合起来。此外,请非常注意 Obj-C 中类别的破坏性影响。

他们修改了该类的所有实例,我肯定会选择退出旧的子类。这是最安全和正确的决定。尤其是当您遇到冲突时。

关于ios - UIButton+Category实现覆盖其他UIButton的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24974707/

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