Как мне создать UIImageview из пользовательского класса? - PullRequest
0 голосов
/ 16 июля 2010

Я новичок в области C и начинающий программист в целом, поэтому ваше терпение ценится. Внутри шаблона приложения на основе представления я извлекаю этот код из myNameViewController.m и пытаюсь вставить его в пользовательский класс. Все переходы нормально, кроме этого: [self.view addSubview: myImage]; Я понял, что теперь вызывается метод mySbject 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 голосов
/ 16 июля 2010

Ваш myObject должен быть подклассом UIViewController, чтобы это работало, так как это даст ему свойство view (такое же, как viewController, с которого вы скопировали код.

В myObject.h ваш интерфейс должен выглядеть так:

@interface myObject : UIViewController {

}

, что означает, что он подклассов , или становится UIViewController в глубине души. Он может делать все, что может делать обычный UIViewController, и будет наследовать все те же свойства (например, view), но, поскольку он является только подклассом, вы можете добавить дополнительную информацию, специфичную для вашего собственного объекта .

0 голосов
/ 16 июля 2010

Код, который вы скопировали, получен из UIViewController (именно здесь определяется свойство view ). addSubview - это сообщение для объекта UIView .

Так что ваш myObject должен быть подклассом UIViewController , поэтомучто вы можете получить доступ к его дочернему представлению, или, возможно, myObject является просто отдельным представлением (* myObject является производным от UIView ?), в этом случае вы можетепросто добавьте UIImageView в иерархию представлений для myObject :

[self addSubview:myImage];

Обновление

Вам необходимо реализовать drawRect в вашем подклассе UIView и рисование в context .Так что-то вроде:

@implementation ViewWhichDrawsItself

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

    // draw on the context
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...