在Objective-C中声明imageview的另一种方法

时间:2015-09-02 21:58:55

标签: ios objective-c xcode uiimageview

我找到了一个我尝试修改的目标C项目。正如您所看到的,我得到了一个创建UIImageView的函数:

- (UIImageView*)homePage:(YouzikHomePageView*)homePageView imageDataForImageView:(UIImageView*)imageView;
{
    [imageView setImage:[UIImage imageNamed:@"background"]];

    return imageView;
}
问题是我想修改每10秒显示的图像,这需要在ViewDidLoad方法中获取UIImageView声明,是否可能?我试过这个:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self setupNa...

    [self.homePa...

    [self hid...

    [self setuphomePag...

    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background"]];

    [self.homePageView addSubview:imageView];

}

但它并没有任何事情发生,感谢所有人,请原谅我糟糕的英语。

1 个答案:

答案 0 :(得分:1)

您的代码正在创建并将imageView添加到子视图中。

这可能不是你打算做的,而且你不想每10秒钟继续创建和添加更多的imageView,因为你最终会耗尽内存。

您通常会在视图控制器上拥有imageView属性,并通过设置其image属性来更改其图像。

在HomeViewController.h中

@property (weak, nonatomic) IBOutlet UIImageView *myImageView;

在HomeViewController.m

self.myImageView.image = [UIImage imageNamed:@"background"];

至于每十秒更换一次图像,您需要设置一个计时器

myTimer = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(changeImage) userInfo:nil repeats:YES];

并在changeImage方法

中设置新图片
- (void)changeImage
{
    self.myImageView.image = ...;
}