我正在尝试创建一个UIImageView
,但我必须以编程方式进行编写,我必须能够使用实例变量(在.h
文件中或类似的东西中)声明它。这是创建它的代码;但是,这不允许我在其他方法中使用它。
UIImageView *airImage = [[UIImageView alloc]
initWithFrame:CGRectMake(29, 7, 82, 96)];
[myScrollView addSubview:airImage];
我已经看过其他人提出类似的问题,但是没有一个人会允许我创建一个实例变量。 BTW该代码在我的viewDidLoad中。提前致谢!
答案 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)
@property (nonatomic, strong) UIImageView *airImage; // public
在你的.m(viewDidLoad或你想要初始化你的ImageView的地方)
self.airImage = [[UIImageView alloc] initWithFrame:CGRectMake(29, 7, 82, 96)];
[myScrollView addSubview:self.airImage];