Я создал подкласс UIControl, называемый ToggleImageControl, с помощью следующего кода (со ссылкой на следующий пост Переключение изображения флажка в UITableViewCell )
@interface ToggleImageControl : UIControl
{
BOOL photoIsStarred;
UIImageView *imageView;
UIImage *normalImage;
UIImage *selectedImage;
}
@property (nonatomic, assign) BOOL photoIsStarred;
@property (nonatomic, retain) UIImageView *imageView;
@property (nonatomic, retain) UIImage *normalImage;
@property (nonatomic, retain) UIImage *selectedImage;
- (void) toggleImage;
@end
@implementation ToggleImageControl
@synthesize photoIsStarred, imageView, normalImage,selectedImage;
- (id)initWithFrame:(CGRect)frame
{
NSLog(@"in inti with frame method");
self.normalImage = [UIImage imageNamed: @"blank_star.png"];
self.selectedImage = [UIImage imageNamed: @"star.png"];
self.imageView = [[UIImageView alloc] initWithImage: normalImage];
// set imageView frame
[self addSubview: imageView];
[self addTarget: self action: @selector(toggleImage) forControlEvents: UIControlEventTouchDown];
return self;
}
- (void) toggleImage
{
NSLog(@"image toggled");
self.photoIsStarred = !photoIsStarred;
self.imageView.image = (photoIsStarred ? selectedImage : normalImage);
}
@end
Я пытался создать экземплярToggleImageControl в ячейке таблицы, но не смог отобразить «нормальное изображение».Чего-то не хватает в моей реализации ниже?
//In a UItableview cell
ToggleImageControl *toggleControl = [[ToggleImageControl alloc]initWithFrame:CGRectMake(670, 10,80, 80)];
[cell.contentView addSubview:toggleControl];