我正在尝试将图像添加到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
无法弄清楚我哪里出错了。我没有错误..我得到的只是一个空白的白色碎片。任何帮助将受到高度赞赏:)
答案 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;