制作图像出现在屏幕上?

时间:2013-03-07 18:22:08

标签: ios objective-c uiimage

我正在尝试以编程方式实例化一个图像,我的最终目标是在屏幕上水平不同点上有一系列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];

提前感谢您的帮助。

3 个答案:

答案 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];
}