2011-12-10 8 views
4

に画像を追加します。ここに私のコードです ..私はUIViewのに画像を追加し、その後のUIViewControllerのサブビューとして追加しようとしているのUIView

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 

私が間違っているつもりですどこを見つけ出すことはできません。私はエラーはありません。私が得るのは、白い空白の空白です。すべてのヘルプは高く評価されます:)

答えて

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; 
+0

驚くべきことに、これは動作しませんでしたし、アプリは "これでクラッシュしました[UIImageView superview]:解放されたインスタンスに送信されたメッセージ0x10167fd0 " –

+0

私は、サブビューを追加した後に、logoViewインスタンスを解放することでこれを回避することができました..しかし、フレーム全体を画像だけにして、 center = CGPointMake(x、y)..ビュー全体ではなく画像を移動する –

関連する問題