0

(注意:当我第一次开始我的项目时,我选择使用 StoryBoards,所以我似乎无权访问任何 .nib 文件,以防我在这里要求的内容需要这种访问权限..)

我想创建一个方法,该方法采用图像和必要的坐标参数,并在调用该方法时将图像加载到当前视图控制器窗口上的特定位置。

我显然没有要求确切的方法,因为目前我什至无法加载一张图片!:)

我之前没有在 iOS 上尝试过图形,但我浏览了文档,这很令人困惑,所以我决定要求澄清一些可能对我和其他人有所帮助的问题。

显然,我需要创建一个 ImageView 对象来保存我想要的图像。但是,文档中没有提及如何实际和最终将图像加载到窗口上。此外,没有关于superView 是什么的实际解释。SuperView是我将要创建的第一个UIView 对象,还是系统为我创建的并且我可以通过调用来访问它?我是否需要将我正在创建的每个 UIView 对象作为子类添加到第一个 SuperView 中?通过子类化视图,我是否定义了它们在屏幕上相互重叠的方式?self.view

这是我正在使用的代码,用于测试目的,尝试在屏幕上加载一张图像:

#import "TestViewController.h"

@interface TestViewController ()
{
    UIView *myView;            
    UIImage *myImage;
    UIImageView *myImageView;
}

@end

@implementation TestViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) 
    {
        // Custom initialization
    }

    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    // defining the size of my UIView..
    CGRect  viewRect = CGRectMake(10, 10, 100, 100);

    // creating the UIView object
    myView = [[UIView alloc] initWithFrame:viewRect];

    // loading my image (a red square) into a UIImage object..
    myImage = [[UIImage alloc] initWithContentsOfFile:(@"userCell.png")];

    // creating a UIImageView object that will hold my myImage..
    myImageView = [[UIImageView alloc] initWithImage:myImage];

    // trying to make my Image load to the screen by adding the object that is 
    // encapsulating it to the UIView I created..

    [myView addSubview:myImageView];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

谢谢!

4

2 回答 2

0

这边走:

CGRect  viewRect = CGRectMake(10, 10, 100, 100);
myImageView = [[UIImageView alloc] initWithImage:myImage];
[myImageView setFrame:viewRect];
[self.view addSubview:myImageView];

基本上,您需要定义将显示子视图(在您的情况下为 UIImageView)的框架,然后将此视图添加到视图控制器的主视图(这就是 self.view)。无需将 ImageView 包装在 UIView 中,因为 UIImageView 本身就是 UIView。

于 2012-08-18T13:41:09.557 回答
0
- (void)viewDidLoad
{
    [super viewDidLoad];

    // defining the size of my UIView..
    CGRect  viewRect = CGRectMake(10, 10, 100, 100);

    // creating the UIView object
    myView = [[UIView alloc] initWithFrame:viewRect];

    // loading my image into a UIImage object..
    myImage = [UIImage imageNamed:@"userCell.png"];

    // creating a UIImageView object that will hold my myImage..
    myImageView = [[UIImageView alloc] initWithImage:myImage];

    // trying to make my Image load to the screen by adding the object that is 
    // encapsulating it to the UIView I created..

    [myView addSubview:myImageView];
    [self.view addSubView:myView];
于 2012-08-18T13:45:11.037 回答