gpt4 book ai didi

iphone - 为什么我无法通过 isKindOfClass 获取自定义类的正确类?

转载 作者:行者123 更新时间:2023-12-03 20:26:50 26 4
gpt4 key购买 nike

我创建了一个自定义类AnimalView,它是UIView的子类,包含一个UILabel和一个UIImageView >。

@interface AnimalView : UIView {
UILabel *nameLabel;
UIImageView *picture;
}

然后我在 ViewController.view 上添加了几个 AnimalView 。在 touchesBegan:withEvent: 方法中,我想检测触摸的对象是否是 AnimalView 。这是 viewController 的代码:

@implementation AppViewController

- (void)viewDidLoad {
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:...
[self.view addSubview scrollview];

for (int i = 0; i<10; i++) {
AnimalView *newAnimal = [[AnimalView alloc] init];
// customization of newAnimal
[scrollview addSubview:newAnimal;
}
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
UIView *hitView = touch.view;
if ([hitView isKindOfClass:[AnimalView class]]) {
AnimalView *animal = (AnimalView *)hitView;
[animal doSomething];
}
}

但是,当我点击动物时,什么也没发生。当我通过 NSLog(@"%@", [hitView class]) 检查 hitView 的类时,它总是显示 UIView 而不是 AnimalView。当AnimalView添加到ViewController上时,它真的变成了UIView吗?有什么方法可以取回自定义类的原始类吗?

最佳答案

AnimalView 可能没有启用用户交互并且忽略了触摸。尝试设置 [myView setUserInteractionEnabled:YES];

关于iphone - 为什么我无法通过 isKindOfClass 获取自定义类的正确类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2441070/

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