1

私は XCode での開発を始めており、いくつかの演習と実践を始めています。簡単なもの、iPhone での 1 つの描画例、ワンタッチ イベントのスレートを実行しようとしていますが、何か間違ったことをしています。私は少し迷っています。

HDPizarra クラスを作成し、動きを維持しようとしています。消去ボタンが 1 つあり、スレートを消去してビューを再起動する IBAction が 1 つあります。赤い色と幅 2 の線を配置し、星と端の LocationInView のタッチを配置します。しかし、うまくいきません。ビューを開始しますが、画面に触れても何も起こりません。これはコードです:

-(IBAction)borrar: (id)sender
{

[lineas removeAllObjects];

}

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

-(NSMutableArray *)lineas{
if (_lineas == nil) {
_lineas = [NSMutableArray new];
}
return _lineas;
}

- (void)drawRect: (CGRect)rect
{

if (!lineas) {
lineas = [[NSMutableArray alloc] initWithCapacity:0];
}

CGContextRef contexto = UIGraphicsGetCurrentContext();

UIColor * rojo = [UIColor redColor];

CGContextSetStrokeColorWithColor(contexto, rojo.CGColor);
CGContextSetLineWidth(contexto, 2);

CGContextMoveToPoint(contexto, inicio.x, inicio.y);
CGContextAddLineToPoint(contexto, fin.x, fin.y);

CGContextStrokePath(contexto);

}


-(void)touchesBegan: (NSSet *)touches withEvent: (UIEvent *)event{
UITouch * touch = [touches anyObject];
inicio = [touch locationInView:self];
fin = [touch locationInView:self];

[self setNeedsDisplay];


}

-(void)touchesMoved: (NSSet *)touches withEvent: (UIEvent *)event{
UITouch * touch = [touches anyObject];
fin = [touch locationInView:self];
HDLinea * linea = [[HDLinea alloc] initWithRect:CGRectMake(inicio.x, inicio.y, fin.x,           fin.y)];
[self.lineas addObject: linea];
inicio.x = fin.x;
inicio.y = fin.y;
[self setNeedsDisplay];
}

移動は、1 つの NSMutableArray 内の HDLinea オブジェクトからのものです。.h のコードは次のとおりです。

#import <Foundation/Foundation.h>

@interface HDLinea : NSObject

@property (readwrite) CGRect puntos;

-(id) initWithRect: (CGRect) puntos;

@end

そして、実装の1つは次のとおりです。

#import "HDLinea.h"

@implementation HDLinea
@synthesize puntos = _puntos;

- (id)initWithRect: (CGRect)puntos
{
self = [super init];
if (self) {
self.puntos = puntos;
}
return self;
}

@end

何か案が?どうもありがとう!!

4

0 に答える 0