我正在尝试以编程方式实例化一个图像,我的最终目标是在屏幕上水平不同点上有一系列Empty.png。我不知道该怎么做但首先我只想让一个图像出现在屏幕上。这是我在.m文件中的代码。
- (void)drawAtPoint:(CGPoint)point {
point = CGPointMake(100.0,100.0);
UIImageView *img = [[UIImageView alloc] init];
img.image = [UIImage imageNamed:@"Empty.png"];
[self.view addSubview:img];
提前感谢您的帮助。
答案 0 :(得分:3)
你采取了一种完全错误的做法。
作为初学者,如果您发现自己正在绘制代码(drawAtPoint:
,drawInRect:
等),那么您几乎肯定是在错误的地方。
特别是对于加载和显示图像等内容,iOS几乎可以为您完成所有工作,因此您无需亲自绘制任何内容。
请不要以错误的方式采取这种做法,而是要帮自己一个大忙,并获得一本关于这个主题的好的入门书。 “大书呆子牧场指南”系列中的书籍非常出色,非常物有所值。
编辑:
如果你真的不想买书(请为了你自己的缘故,请一本书 - 我做了,我很高兴我做了),这是一个应该有效的快捷方式。
您在创建UIImageView
时有正确的想法,但您使用的却是错误的。
你的应用中可能有一个UIViewController
。查找(或创建)- (void)viewDidLoad
方法,并从那里显示您的图像:
- (void)viewDidLoad
{
UIImage *myImage = [UIImage imageNamed:@"Empty"]; //you can leave out PNG.
UIImageView *myFirstImageView = [[UIImageView alloc] initWithImage:myImage]; //this automatically gives the UIImageView the correct height and width
[self.view addSubview:myFirstImageView]; //That's all. UIKit will handle displaying the imageView automatically.
}
这将在屏幕的左上角显示图像。
您可以在UIImageView *myFirst...
之后的某处插入以下行轻松移动它:
myFirstImageView.center = CGPointMake(210.0, 345.0);
我是否提到Big Nerd Ranch书籍对于iOS开发很有帮助,读起来也很有趣?
此外,官方文档非常好(虽然不是很有趣或易于阅读,并没有解释那么多)。
答案 1 :(得分:0)
对不起,我之前的回答是错误的。 我没有意识到你做drawInRect。
不要使用图像视图。在这里你应该留在核心图形。 UIImageView对象可能会有所帮助,但只是其中的一部分。
[img drawAtPoint:point];
应该做的伎俩。
答案 2 :(得分:0)
您需要设置框架:
- (void)placeImageViewAtPoint:(CGPoint)point
{
UIImageView *img = [[UIImageView alloc] init];
img.image = [UIImage imageNamed:@"Empty.png"];
img.frame.origin = point;
[self.view addSubview:img];
}
我没有对此进行测试,但如果出现错误则需要:
- (void)placeImageViewAtPoint:(CGPoint)point
{
UIImageView *img = [[UIImageView alloc] init];
img.image = [UIImage imageNamed:@"Empty.png"];
CGRect frame = img.frame;
frame.origin = point;
img.frame = frame;
[self.view addSubview:img];
}
你应该从viewDidAppear或类似的方法调用这个方法:
-(void)viewDidAppear
{
CGPoint point = point = CGPointMake(100.0,100.0);
[self placeImageViewAtPoint:point];
}