Я работаю над видом приложения для сидения. Если приложение позволяет администратору размещать сидячие места, щелкнув и переместив каждое сиденье, а затем сохраните сидение с размерами рамы каждого сиденья. Я попытался загрузить 5 UIImageView на пользовательском представлении и переместить изображение, но только одно изображение просматривается. Остальная часть изображений не перемещается. Не могли бы вы помочь мне в этом?Как легко перемещать массив UIImageViews?
- (void) addSeatsToTheView {
for (int i=0; i<5; i++) {
self.hotelImage = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 50, 50)];
self.hotelImage.image = [UIImage imageNamed:@"DiningIcon"];
self.hotelImage.userInteractionEnabled = YES;
[self.hotelImage setUserInteractionEnabled:YES];
self.hotelImage.tag = i;
[self.hotelView addSubview:self.hotelImage];
}
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if (touch.view == self.hotelImage) {
CGPoint location = [touch locationInView:self.hotelView];
NSLog(@"Begen Touch Location: %@", NSStringFromCGPoint(location));
self.hotelImage.frame=CGRectMake(location.x, location.y, 50, 50);
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if (touch.view == self.hotelImage) {
CGPoint location = [touch locationInView:self.hotelView];
NSLog(@"Begen Touch Location: %@", NSStringFromCGPoint(location));
self.hotelImage.frame=CGRectMake(location.x, location.y, 50, 50);
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if (touch.view == self.hotelImage) {
CGPoint location = [touch locationInView:self.hotelView];
NSLog(@"Begen Touch Location: %@", NSStringFromCGPoint(location));
self.hotelImage.frame=CGRectMake(location.x, location.y, 50, 50);
}
}
Как только администратор разместил кресла, мы должны сохранить все видимые каркасы uiimageview. Благодарю.
Отредактировано:
Я попытался с помощью UIPanGestureRecognizer, но только один ImageView получение переехал. Не знаете, где я ошибаюсь? Не могли бы вы мне помочь? Благодарю.
- (void) addSeatsToTheView {
for (int i=0; i<5; i++) {
self.hotelImage = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 50, 50)];
self.hotelImage.image = [UIImage imageNamed:@"DiningIcon"];
self.hotelImage.userInteractionEnabled = YES;
[self.hotelImage setUserInteractionEnabled:YES];
self.hotelImage.tag = i;
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognizerMethod:)];
[self.hotelImage addGestureRecognizer:panGestureRecognizer];
[self.hotelView addSubview:self.hotelImage];
}
}
- (void)gestureRecognizerMethod:(UIPanGestureRecognizer *)recogniser
{
if (recogniser.state == UIGestureRecognizerStateBegan || recogniser.state == UIGestureRecognizerStateChanged)
{
CGPoint touchLocation = [recogniser locationInView:self.hotelView];
self.hotelImage.frame = CGRectMake(touchLocation.x, touchLocation.y, 50, 50);
}
}
Hi Matt. Спасибо за ваш ответ. Я также попробовал UIPanGestureRecognizer. Я редактировал свой вопрос. Все еще только одно изображение просматривается. Вы можете мне помочь? Благодарю. –
Конечно, я вижу проблему с вашим новым кодом. Подождите секунду, я добавлю к своему ответу. – matt
Спасибо, Мэтт. У меня проблема, и теперь она работает. Благодарю. –