如何在自定义类中创建UIImageview?

时间:2010-07-16 04:43:58

标签: iphone objective-c uiimageview

我是一个客观的C newb和相关的编程新手一般,所以你的耐心是值得赞赏的。在基于视图的应用程序模板中,我将此代码从myNameViewController.m中拉出并尝试将其插入到自定义类中。一切都转好了,除了这个:[self.view addSubview:myImage];我收集这个现在正在调用myObject的addSubview方法,该方法不存在....将子视图插入当前视图的正确方法是什么?

#import "myObject.h"

@implementation myObject

-(void)drawImage{

    CGRect myImageRect = CGRectMake(0.0f, 0.0f, 70.0f, 70.0f);
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
    [myImage setImage:[UIImage imageNamed:@"test.png"]];
    myImage.opaque = YES;
    [self.view addSubview:myImage];
}

@end

2 个答案:

答案 0 :(得分:0)

您复制的代码源自 UIViewController (这是定义 view 属性的地方)。 addSubview UIView 对象上的消息。

所以你的 myObject 需要是 UIViewController 的子类,以便你可以访问它的子视图,或者 myObject 只是一个视图在它自己的( myObject 派生自 UIView ?),在这种情况下,您只需将 UIImageView 添加到的视图层次结构中myObject的

[self addSubview:myImage];

<强>更新

您需要在UIView子类中实现 drawRect 消息并在context上绘制。如下所示:

@implementation ViewWhichDrawsItself

- (void)drawRect:(CGRect)rect 
{
    // get the drawing context
    CGContextRef context = UIGraphicsGetCurrentContext ();

    // draw on the context
    ...
}

答案 1 :(得分:0)

您的myObject必须是UIViewController的子类才能实现此功能,因为这会为其提供view属性(与您复制的viewController相同来自的代码。

myObject.h中,您的界面应为:

@interface myObject : UIViewController {

}

表示它是 subClasses ,或者成为UIViewController的核心。它可以执行常规UIViewController可以执行的操作,并将继承所有相同的属性(例如view),但由于它只是它的子类,因此您可以添加特定的额外信息到你自己的对象