UIImageView以编程方式创建

时间:2014-03-19 00:25:48

标签: ios objective-c uiimageview

我正在尝试创建一个UIImageView,但我必须以编程方式进行编写,我必须能够使用实例变量(在.h文件中或类似的东西中)声明它。这是创建它的代码;但是,这不允许我在其他方法中使用它。

UIImageView *airImage = [[UIImageView alloc] 
                            initWithFrame:CGRectMake(29, 7, 82, 96)];
[myScrollView addSubview:airImage];

我已经看过其他人提出类似的问题,但是没有一个人会允许我创建一个实例变量。 BTW该代码在我的viewDidLoad中。提前致谢!

3 个答案:

答案 0 :(得分:1)

在.h中使用:

UIImageView *airImage;

在viewDidLoad中:

airImage=[[UIImageView alloc] initWithFrame:CGRectMake(29, 7, 82, 96)];
[myScrollView addSubview:airImage];

或者您可以将其声明为属性:

@property (nonatomic, strong) UIImageView *airImage;

并用于访问它:

self.airImage = [[UIImageView alloc] initWithFrame:CGRectMake(29, 7, 82, 96)];
[myScrollView addSubview:self.airImage];

答案 1 :(得分:0)

更具体地说,应该在界面中的特定位置创建实例变量(可以在 .h .m 文件,但使用 .h ,因为它更常见。)

如果您想在 .h 文件中声明它,那么您希望代码看起来像这样:

@interface ClassName : UIViewController {
    UIImageView *_airImage; //many developers use _ to represent ivars
}

@end

要设置变量的值,可以使用

_airImage = [[UIImageView alloc]init...];

财产是另一种选择。相反,您可以这样声明:

@interface ClassName : UIViewController

@property (strong, nonatomic) UIImageView *airImage;

@end

要设置此值,只需使用

即可
self.airImage = [[UIImageView alloc]init...];

希望这有助于澄清一些事情。使用此问题有助于了解差异以及何时使用ivars与属性:What is the difference between ivars and properties in Objective-C

本教程介绍如何同时使用ivars和属性,并帮助您更好地理解它们:http://www.icodeblog.com/2011/07/13/coding-conventions-ivars/

答案 2 :(得分:0)

你的.h

中的

@property (nonatomic, strong) UIImageView *airImage; // public

在你的.m(viewDidLoad或你想要初始化你的ImageView的地方)

self.airImage = [[UIImageView alloc] initWithFrame:CGRectMake(29, 7, 82, 96)];
[myScrollView addSubview:self.airImage];