Я полагаю, что могу столкнуться с некоторыми проблемами просмотра, которые не позволяют мне обнаруживать и добавлять UIImageView
объекты в массив.Я мог бы действительно использовать некоторые предложения.
У меня есть число UIImageViews
с изображениями, связанными с UIView
, который расположен поверх UIViewController
(UIView
был добавлен, чтобы помочь сdrawRect
и некоторые дополнительные преимущества).Поэтому, когда я касаюсь изображения и перетаскиваю его, я хочу добавить это изображение в массив после удаления.
My touchesBegan
получает местоположение касания и проверяет, происходит ли касание UIImageView
, а затем центрируется на этом виде следующим образом:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self]; //can't use self.view in a UIView, this may be causing issues?
startLocation = location; // for reference as needed
NSLog(@"Image x coord: %f", location.x);
NSLog(@"Image y coord: %f", location.y);
if ([touch view] == obiWan_Block)
{obiWan_Block.center = location;}
else if ([touch view] == r2d2_Block)
{r2d2_Block.center = location;}
else if ([touch view] == you_Block)
{you_Block.center = location;}
}
Затем я перетаскиваю UIImageView
вокруг с touchesMoved
и, наконец, «перетащите» изображение с помощью touchesEnded
.Когда UIImageView
опускается в определенной области экрана, я «привязываю» его к определенному месту.Именно в этот момент я хочу поместить UIImageView
в массив, но мне не повезло.Я полагаю, что меня смущают различные виды, к которым мы прикасаемся, и то, что добавляется через addObject
к моему NSMutableArray
.Или я мог что-то упустить полностью.Вот мой touchedEnded
метод:
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self];
UIView *temp = [touch view];
UIImageView *currentImageView = (UIImageView *)[touch view]; //DON'T THINK THIS IS RIGHT
NSLog(@"Current Image View is: %@", currentImageView);
if ((location.x > dropZone.origin.x) && (location.y >= dropZone.origin.y) && ([touch view] != NULL))
{
CGRect frame = temp.frame;
if (touchCount == 0) {
frame.origin.x = 15;
frame.origin.y = 180;
temp.frame = frame;
[quoteArray addObject: currentImageView];
touchCount++;
}
else if (touchCount == 1) {
frame.origin.x = 70;
frame.origin.y = 180;
temp.frame = frame;
[quoteArray addObject: currentImageView];
touchCount++;
}
....
У меня есть оператор NSLog
, чтобы проверить, работает ли addObject
следующим образом:
NSLog(@"the quote array contains %d items. Contents = %@",[quoteArray count], quoteArray);
В журнале всегда говорится:
массив цитат содержит 0 элементов.Содержание = (ноль)
Пожалуйста, сообщите и спасибо!