- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个自定义类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/
如何确定结构是否属于特定类型?换句话说,如果我得到一个对象,我怎么知道底层类型是一个结构体? +(BOOL)isPrimitive:(id)input { return [input isKi
我有一个方法someMethod。此方法在某些时候具有以下 if-else 条件。 - (void) someMethod { // ... some more code ... if
我只想抓取ScrollView中的按钮标签1~5,其他数据不需要抓取 (void)layoutScrollImages { UIImageView *view = nil; NSArr
我有一个无法理解的问题,我正在使用一个用于使用Map Open Source Map(https://github.com/route-me/route-me)的库,该示例运行完美,并且我相信不是与代
我原以为这是一个身份,但它现在似乎对我不起作用。 看我的 lldb 提示符: po [self class] ==> MyCustomClass po [MyCustomClass 类] ==> My
最新版本的 Objective-C 和 XCode (4.4)。 我有一个代码片段,我不明白为什么我可以使用一些行,让我解释一下: // For understanding purpose : (NS
我创建了一个自定义类AnimalView,它是UIView的子类,包含一个UILabel和一个UIImageView >。 @interface AnimalView : UIView { U
我正在检查 toViewController(我的 tabBar 中的第二个选项卡)是否属于 MatchCenterViewController 类,但是 else 语句正在运行,这告诉我它不属于那个
我有一个 ViewController 和一些供用户输入的标签和文本字段,在某些时候我需要遍历所有文本字段以收集用户的输入。 override func viewDidLoad() { sup
我有一个与 Cocoapods (ECSlidingViewController) 一起安装的库。在代码中,比较是使用 -isKindOfClass 完成的。在调试器中,打印描述和一切都表明这个变量是
有没有比更好的方法来查看一个对象是否具有多个类之一 if ([item isKindOfClass:[NSArray class]] || [item isKindOfClass:[NSNumber
引用下面的代码,我发现 isKindOfClass 无法识别类。 id parent = [self.tableDataSource objectAtIndex:indexPath.row]; //p
出于各种原因,为了使数组的索引与其他事物保持一致,我在数组中加入了[NSNull null]。像这样: NSArray *arr = @[obj1, obj2, obj3, [NSNull null]
有人可以解释为什么 isKindOfClass 会根据实例的创建方式返回不同的结果吗? @interface BaseClass ... @interface DerivedClassA : Base
我的一个单元测试失败了,原因出乎我的意料。似乎对 isKindOfClass 的调用返回了 NO,但是当我调试并单步执行时,似乎没有理由返回 NO。 代码是: if ([self.detailItem
我正在做一个 iOS5+ 项目(xcode 4.4.1 SDK 5.1) 我在单元测试中有这段代码: [_appDelegate application:nil didFinishLaunchingW
Swift 提供了is 关键字(和as?)来检查一个对象是否可以成功向下转型: if foo is MyClass { // ... } 但是NSObjectProtocol也提供了原来的fu
Swift 中的 isKind(of aClass: AnyClass) 和 isMember(of aClass: AnyClass) 函数有什么区别? Objective-C 中的原始问题 Wha
最近升级了 XCode8 我在 isKindOfClass 中遇到问题这段代码一直有效到 iOS9 的方法但在 iOS10突然[items isKindOfClass: [NSMutableArray
我有以下代码来根据 rvc 的类型确定不同的操作: let rvc = UIApplication.sharedApplication().delegate.window?.rootViewCont
我是一名优秀的程序员,十分优秀!