Cocoa Touch - 如何通过编程方式添加UIImageView?

17

我该如何在 Objective-C 中创建和定位一个新的 ImageView?

谢谢!

我尝试过这个,但它似乎没有起作用...

-(void)drawStars{ //uses random numbers to display a star on screen
    //create random position
    int xCoordinate = arc4random() % 10;
    int yCoordinate = arc4random() % 10;

    UIImageView *starImgView = [[UIImageView alloc] initWithFrame:CGRectMake(xCoordinate, yCoordinate, 58, 40)]; //create ImageView 

    starImgView.image = [UIImage imageNamed:@"star.png"];


    [starImgView release];

我把这个方法放在我的视图控制器中。我看到一些CG的东西,我需要导入核心图形库或者其他什么吗?(顺便问一下,什么是核心图形库?)

4个回答

61
你在询问 iPhone 图像视图,是吗?那么尝试使用以下代码:
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 100, 50)];

这将创建一个100 x 50尺寸的图像视图,并定位在父视图的(10,10)位置。

请查阅UIImageViewUIView的参考手册。您可以使用imageView的image属性设置图像。

imgView.image = [UIImage imageNamed:@"a_image.png"];

而且,您可以使用UIView的contentMode属性来配置如何适应图像到视图中。例如,您可以使用

imgView.contentMode = UIViewContentModeCenter
将所需的图像放置在视图的中心。可用的contentModes在此处列出。


你如何定义要显示的图像?是的,Cocoa Touch 只适用于 iPhone。 - user377419
还有位置的限制是什么?比如说最大值是多少,超过了就会离开屏幕? - user377419

22

您还未将该视图添加为另一个视图的子视图,这意味着它不在视图层次结构中。

假设您正在视图控制器中执行此操作,代码可能如下:

[self.view addSubview: imgView];

@Darryl,该代码在视图控制器中水平添加图片,如果我想垂直排列呢? - dev4life

1
(void)viewDidLoad {
   [super viewDidLoad];
   UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.layer.frame.size.width, self.view.layer.frame.size.height)];
   imgView.image = [UIImage imageNamed:@"emptyCart.jpeg"];
   imgView.backgroundColor = [UIColor whiteColor];
   imgView.contentMode = UIViewContentModeCenter;
   [self.view addSubview: imgView];
}

0

我在将 NSSArray 的值传递给 NSString 时遇到了问题,

我得到了答案:

//Display all images....
    NSString *imgstring= [self.allimages objectAtIndex:indexPath.row];
    cell.myimages.image=[UIImage imageNamed:imgstring];     //displaying Images in UIImageView..noproblem.

// Display all numbers...
    cell.mylables.text=[NSString stringWithFormat:@"%@", [mysetobjectAtIndex:indexPath.row ]];  //showing results fine ArghyA..

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接