-1

ビューに画像をポップアップしようとすると問題が発生します。画像を使用してUIViewの新しいサブクラス(UIViewImageOverlay.m)を作成しました。

UIViewImageOverlay.m

//  ImageOverlay.m
//  ButtonPopup
//
//

#import "UIViewImageOverlay.h"

@implementation UIViewImageOverlay

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


// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    CGContextRef contextRef = UIGraphicsGetCurrentContext();
    UIImage *myImage = [UIImage imageNamed:@"test.jpeg"];
    int w = myImage.size.width;
    int h = myImage.size.height;
    CGContextDrawImage(contextRef, CGRectMake(0, 0, w, h), myImage.CGImage);
    CGContextRelease(contextRef);
}


@end

私のViewController.miにはpushPush、ビューをロードするためのボタンがありますが、試行すると警告が表示されます

//  ViewController.m
//  ButtonPopup
//
//

#import "ViewController.h"
#import "UIViewImageOverlay.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize viewImageOverlay;



- (void)viewDidLoad
{
    [super viewDidLoad]; // static
}

- (void)viewDidUnload
{

    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    } else {
        return YES;
    }
}

- (IBAction)pushPush:(id)sender {
    [self.view addSubview:self.viewImageOverlay];
}
@end

ViewController.h

//  ViewController.h
//  ButtonPopup
//

#import <UIKit/UIKit.h>
@class UIViewImageOverlay;


@interface ViewController : UIViewController {
    UIViewImageOverlay *viewImageOverlay;
}

@property(nonatomic, retain) UIViewImageOverlay *viewImageOverlay; 
- (IBAction)pushPush:(id)sender;
@end

UIViewImageOverlay.h

//  ImageOverlay.h
//  ButtonPopup
//
//

#import <UIKit/UIKit.h>

@interface UIViewImageOverlay : UIView

@end

[self.view addSubview:self.viewImageOverlay];レポートIncompatible pointer types sending 'UIViewImageOverlay *' to parameter of type 'UIView *'

前もって感謝します。

4

2 に答える 2

1

インスタンス変数viewImageOverlayを宣言し、それをプロパティとして定義します

于 2012-04-22T15:05:30.177 に答える
1

コントローラのヘッダーファイル()にフォワードクラス宣言があります@class UIViewImageOverlay。それは正しい実装を隠します。

UIViewImageOverlay.hコントローラの実装ファイルに含める

于 2012-04-22T15:10:04.627 に答える