Как переместить объект NSO в точку (x, y)? - PullRequest
0 голосов
/ 26 ноября 2010

У меня есть объект Sprite, определенный следующим образом:

@interface Sprite : NSObject {
CGFloat x;                      // x location
CGFloat y;                      // y location
CGFloat r;                      // red tint
CGFloat g;                      // green tint
CGFloat b;                      // blue tint
CGFloat alpha;                  // alpha value, for transparency
}

В функции initWithCoder содержащего представления я создал его с помощью:

sprite = [[Sprite alloc] init];
sprite.x = 50; 
sprite.y = 100; 
sprite.width = 100; 
sprite.height = 200; 
sprite.r = 0.0; 
sprite.g = 1.0; 
sprite.b = 0.0;

, и я правильно вижу зеленый прямоугольник,Теперь я хотел бы переместить его: я определил метод moveTo следующим образом

- (void) moveTo: (CGPoint) p
{
    x = p.x;
    y = p.y;
}

, но когда я его вызываю, ничего не происходит ... я не знаю, как перерисовать мой объект

Кто-нибудь может мне помочь?

Заранее спасибо!с.

Ответы [ 2 ]

4 голосов
/ 26 ноября 2010

Как вы видите зеленый прямоугольник? где ты это рисуешь? NSObject не может рисовать ...

Вы можете извлечь его из UIView и изменить свой ход на следующий:

- (void) moveTo: (CGPoint) p
{
   self.frame.origin = p;
   [self setNeedsDisplay];
}
1 голос
/ 26 ноября 2010

NSObject не являются объектами для рисования. Если вы хотите иметь нарисованный объект, вы должны использовать UIView или его подкласс, который имеет все методы для рисования, как drawRect

...