У меня есть пользовательский класс, и этот класс имеет переменную экземпляра UIButton
. Я добавил этот код в классе назначенный инициализаторе:Программно создать UIButton - не будет вызывать действие?
theFishDeathView = [UIButton buttonWithType:UIButtonTypeCustom];
[theFishDeathView setFrame:CGRectMake(15, 15, 50, 50)];
[theFishDeathView setImage:[UIImage imageNamed:@"Small fish - death.png"] forState:UIControlStateNormal];
Так это должно правильно распределять/инициализировать кнопку. И действительно, кнопка get отображается на экране, когда это вызывается (и, конечно, добавляется как подвью).
Теперь я называю этот метод на моем объекте:
[theFishDeathView addTarget:self action:@selector(sellFish) forControlEvents:UIControlEventTouchDown];
А вот sellFish
метод:
-(void) sellFish {
thePlayer.dollars += worthInDollars * 3;
[theFishDeathView removeFromSuperview];
}
Но когда я пытаюсь нажать на кнопку, он не требует, что метод. Я что-то упустил?
Для полноты, вот файл Fish.h. Понятно, что theFishDeathView
является экземпляром объекта Fish.
#import <Foundation/Foundation.h>
@interface Fish : NSObject
{
float cookingTime;
float weight;
int worthInDollars;
NSString *name;
NSArray *animaionImages;
int fishMovementSpeed;
}
// Will be used to display
@property (nonatomic, retain) UIImageView *theFishImageView;
@property (nonatomic, retain) UIButton *theFishDeathView;
// Create setter/getter methods
@property (nonatomic, retain) NSString *name;
@property (readonly) int worthInDollars;
@property (readonly) int fishMovementSpeed;
-(id) initWith: (NSString *)theName andWeight: (float)theWeight andCookingTime: (float)theCookingTime andValue: (int)theValue andMovementSpeed: (int)speed;
-(CGRect) newFrameWithWidth:(int)width andHeight:(int)height;
-(void) killFish;
// Cooking methods
-(void) startCooking;
-(void) isDoneCooking;
-(void) isOverCooked;
-(void) sellFish;
@end
Пожалуйста, включите метод sellFish, который вы пытаетесь вызвать. Это sellFish или sellFish:? – jrturton
Я добавил метод sellFish, и он не принимает аргументов, так что это должно быть хорошо, так как sellFish – Seerex
Обратите внимание: theFishDeathView - это UIButton, на который указывает объект Fish *, поэтому мне нужно изменить addTarget: self? я попытался изменить его на ноль, но это не решило его, поэтому мне было интересно, есть ли что-то еще, чтобы попробовать? – Seerex