将图像添加到UIView

时间:2011-12-10 12:14:49

标签: ios uiimage

我正在尝试将图像添加到UIView,然后将其添加为UIViewController上的子视图。 这是我的代码:

BlowView.h

#import <UIKit/UIKit.h>

@interface BlowView : UIView {
    UIImageView *stone;
}

@property (nonatomic, retain) UIImageView *stone;

- (id)init;
@end

BlowView.m

#import "BlowView.h"

@implementation BlowView

@synthesize stone;

- (id)init {

    UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Placard.png"]];
    stone = logoView;
    [logoView release];

    UIImage *img = [UIImage imageNamed:@"Placard.png"];
    CGRect frame = CGRectMake(0, 0, img.size.width, img.size.height);


    [self initWithFrame:frame];

    return self;
}
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if(self) { 

    }
    return self;
}

- (void)dealloc {
    [stone release];
    [super dealloc];
}


@end

BlowViewController.h

@class BlowView;

@interface BlowViewController : UIViewController {
    BlowView *aview;
}

@property (nonatomic, retain) BlowView *aview;

-(void)setUpView;
@end

BlowViewController.m

#import "BlowViewController.h"
#import "BlowView.h"


@implementation BlowViewController

@synthesize aview;

- (void)setUpView {

    // Create the placard view -- its init method calculates its frame based on its image
    BlowView *aView2 = [[BlowView alloc] init];
    self.aview = aView2;
    [aView2 release];
    self.view = self.aview;
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}




- (void)viewDidLoad {

    [super viewDidLoad];
    [self setUpView];

    aview.center = self.view.center;
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (void)dealloc {
    [aview release];
    [super dealloc];
}
@end

无法弄清楚我哪里出错了。我没有错误..我得到的只是一个空白的白色碎片。任何帮助将受到高度赞赏:)

1 个答案:

答案 0 :(得分:3)

在您的第一个代码段中,您尚未将图像添加到视图中,请在下面进行修改:

UIImageView *logoView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Placard.png"]];
stone = logoView;
[logoView release];

UIImage *img = [UIImage imageNamed:@"Placard.png"];
CGRect frame = CGRectMake(0, 0, img.size.width, img.size.height);


[self initWithFrame:frame];

// Here add your imageView(stone) to your view as a subview
[self addSubview:stone];

return self;