【问题标题】:Another way to declare an imageview in Objective-C在 Objective-C 中声明 imageview 的另一种方法
【发布时间】:2015-09-02 21:58:54
【问题描述】:

我找到了一个我尝试修改的目标 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];

}

但它没有显示任何东西,谢谢大家,请原谅我蹩脚的英语。

【问题讨论】:

标签: ios objective-c xcode uiimageview


【解决方案1】:

您的代码正在做的是创建图像视图并将其添加到子视图。

这可能不是您打算做的,并且您不希望每 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 = ...;
}

【讨论】:

    猜你喜欢
    • 2012-06-16
    • 1970-01-01
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    相关资源
    最近更新 更多