Нарисуйте прямоугольник с центром в качестве точки касания - PullRequest
1 голос
/ 28 мая 2011

Я работаю над проектом, в котором мне нужно создать экран тегов. Что именно мне нужно сделать, так это когда пользователь касается изображения, должен быть нарисован прямоугольник, предполагая, что центральные точки являются точками касания. Пожалуйста, предложите мнеподход или некоторый пример кода, которому я должен следовать.Любые предложения будут высоко оценены.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 28 мая 2011

Есть несколько способов сделать это, но я предпочитаю идею использования слоев для этой задачи.Чтобы это работало, вам нужно будет прикрепить распознаватель касаний к виду изображения и добавить слои-теги в качестве подслоев к слою представления изображения в обработчике жестов.

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[imageView addGesture:tap];
[tap release];

...

- (void)handleGesture:(UITapGestureRecognizer*)gesture {
    CALayer *newLayer = [CALayer layer];
    layer.bounds = layerBounds;
    layer.position = [gesture locationInView:gesture.view];
    layer.backgroundColor = layerBackgroundColor;

    [imageView.layer addSublayer:layer];
}

Вам нужно будет добавить QuartzCore рамки, чтобы это работало, и #import <QuartzCore/QuartzCore.h>, чтобы это работало.

1 голос
/ 28 мая 2011

вы можете изменить центр точки UIView , используя свойство центральной точки,

Изменить center свойство вашего представления и перерисовать его.

...