/ / Benutzerdefinierte Klasse, die von UIButton erbt und in isKindOfClass nicht erkannt wird: - ios, iphone, goal-c, uibutton

Benutzerdefinierte Klasse, die von UIButton erbt, wird in isKindOfClass nicht erkannt: - ios, iphone, objective-c, uibutton

Ich habe eine benutzerdefinierte Schaltflächenklasse mit einigen zusätzlichen Eigenschaften erstellt, die von UIButton erbt. Sie wird in einer Ansicht wie der folgenden mit einer normalen Schaltfläche hinzugefügt:

EFButton *btn = [EFButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(500, 100, 100, 44);
btn.backgroundColor = [UIColor lightGrayColor];
btn.userInteractionEnabled = NO;
[self.view addSubview:btn];

UIButton *nBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
nBtn.frame = CGRectMake(500, 100, 100, 44);
nBtn.backgroundColor = [UIColor lightGrayColor];
nBtn.userInteractionEnabled = NO;
[self.view addSubview:nBtn];

Durchlaufen Sie die Objekte in der Ansicht wie folgt:

  for (id view in self.view.subviews)
{

if ([view isKindOfClass:[EFButton class]])
{
//** dsnt come here **
NSLog(@"EFButton Class");
EFButton *btn = view;
}
if ([view isKindOfClass:[UIButton class]])
{
//** come here **
NSLog(@"UIButton Class");
UIButton *btn = view;
}
}

UIButton funktioniert, ist jedoch nicht in der Bedingung isKindOfClass: [EFButton-Klasse] enthalten. Bitte helfen Sie mir, was ich falsch mache oder wie es gemacht werden muss.

Antworten:

5 für die Antwort № 1

Es ist weil buttonWithType ist eine Klassenmethode von UIButton , es kehrt zurück UIButton Typ, obwohl Ihr EFButton erbt UIButton kann es nicht zurückkehren EFButton Art

Zitiere den Entwickler Unterlagen

If you subclass UIButton, this method does not return an instance of your subclass

PS: Ich denke nicht, erben UIButton ist ein guter Weg.