Метод прикосновений начал не вызываться в моем пользовательском классе - PullRequest
1 голос
/ 09 января 2012

В моем представлении приложения для iPhone я добавил одно вспомогательное представление, которое является пользовательским классом.У меня есть .h и .m файл для этого пользовательского класса, который наследуется от Image View.

Проблема в том, что вызывается метод начала касаний моего viewcontroller, а не метод начала касаний пользовательского класса.

Я имею в виду, когда я касаюсь этого image class view на мой взгляд:

/* Assign Categories */

Category *category1=[[Category alloc] initWithName:[[categoriesMArray objectAtIndex:0] valueForKey:@"category_name"]  identity:[[[categoriesMArray objectAtIndex:0] valueForKey:@"category_id"] intValue] imageName:[[categoriesMArray objectAtIndex:0] valueForKey:@"category_image"]];
[category1 setFrame:CGRectMake(10,10, 150, 150)];

Category *category2=[[Category alloc] initWithName:[[categoriesMArray objectAtIndex:1] valueForKey:@"category_name"]  identity:[[[categoriesMArray objectAtIndex:1] valueForKey:@"category_id"] intValue] imageName:[[categoriesMArray objectAtIndex:1] valueForKey:@"category_image"]];
[category2 setFrame:CGRectMake(170,10, 150, 150)];


NSLog(@"Categories %@",category3.imageName);
[self.view addSubview:category1];
[self.view addSubview:category2];
[self.view bringSubviewToFront:category1];

это должно вызвать мою пользовательскую часть класса:

@implementation Category
@synthesize categoryName,categoryID,imageName;

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

- (id)initWithName:(NSString *)name identity:(int)index imageName:(NSString *)imgName
{
    if ((self = [super init])) {
        self.categoryName = name;
        self.categoryID =index;
        self.imageName=imgName;
        UIImage *temptoResize=[UIImage imageNamed:self.imageName];

        [super setImage:[temptoResize scaleToSize:CGSizeMake(200, 150)]];


    }    
    return self;

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"Category Touch %@",self.frame);


}

// ------------------------

-touchesBegan method моего пользовательского класса , а не моего представления контроллера .

Скажите, пожалуйста, почему мой пользовательский метод класса не вызывается.

1 Ответ

7 голосов
/ 09 января 2012

Хорошо, в вашем

- (id)initWithName:(NSString *)name identity:(int)index...

метод, добавьте следующую строку

self.userInteractionEnabled = YES;

по умолчанию НЕТ. См. UIImageView Документация Apple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...