С одной стороны, я бы не рекомендовал использовать методы класса, но методы экземпляра. Таким образом, вы можете реализовать столько экземпляров вашего класса, сколько вам нужно, и сохранить ссылку на свои экземпляры для их обновления.
С другой стороны, если UIImageView
является важным атрибутом вашего класса, я предлагаю вам реализовать его как подкласс UIView
(если это не так, вы также можете сделать это как подкласс NSObject
) и получить его атрибут UIImageView).
Посмотрите на следующий код:
PlayerImageController.h:
@interface PlayerImageController : UIView{
UIImageView *_heroPlayerImageView;
}
-(void) changePlayerImage;
PlayerImageController.m:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
_heroPlayerImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"hero-still.png"]];
// x = 0 and y = 0 because its relative to its parent view, the object itself.
[_heroPlayerImageView setFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
[self addSubview:_heroPlayerImageView];
}
return self;
}
MainViewController.h:
#import "PlayerImageController.h"
@interface MainViewController : UIViewController{
PlayerImageController *_player;
}
MainViewController.m:
- (void)viewDidLoad
{
[super viewDidLoad];
_player = [[PlayerImageController alloc] initWithFrame:CGRect(151, 200, 17, 23)];
[self.view addSubview:_player];
}
- (void)somethingHappened
{
[_player changePlayerImage];
}
Я надеюсь, что это может помочь вам (на самом деле я не пробовал код выше, у него могут быть некоторые синтаксические ошибки).
Если вы не используете ARC, не забудьте сохранить и освободить ваши переменные! Удачи!