#iphone #objective-c #ios
#iPhone #objective-c #iOS
Вопрос:
Итак, я создал NSMutableArray
UIImageView
что-то вроде этого:
NSMutableArray* imageViewArray = [[NSMutableArray alloc] init];
for(int i = 0; i < 15; i ){
UIImageView* imageView = [self animationInit:imageArray xPos:0 yPos:480 wFrame:32
hFrame:32 duration:0.5 repeat:0];
[imageViewArray addObject:imageView];
[imageView release];
imageView = nil;
[self.view addSubview:[imageViewArray objectAtIndex:i]];
}
Метод «animationInit» — это метод, который я создал для инициализации UIImageView. Его реализация такова:
-(UIImageView*)animationInit:(NSArray*)imageArray xPos:(float)x yPos:(float)y wFrame:
(float)w hFrame:(float)h duration:(float)duration repeat:(float)count {
UIImageView* imageAnimation = [[UIImageView alloc] initWithFrame:CGRectMake(x, y, w, h)];
imageAnimation.animationImages = imageArray;
imageAnimation.animationDuration = duration;
imageAnimation.animationRepeatCount = count;
return imageAnimation;
}
Я могу установить центр каждого UIImageView в массиве, используя вот так:
[imageViewArray objectAtIndex:Index] setCenter:CGPointMake(x, y)];
Теперь я хотел бы иметь возможность изменять точки x
и y
, как при обычном UIImageView
. Пример: UIImageView.center = CGPointMake(UIImageView.center.x 5, UIImageView.center.y 5);
Проблема здесь в том, что я понятия не имею, как получить доступ к «UIImageView.center.x / y» в массиве UIImageViews
. Есть ли какой-нибудь способ получить доступ к «center.x / y», как я смог с помощью «setCenter:» или мне было бы лучше создать кучу CGPoints
для хранения x
и y
UIImageViews
в массиве?
Когда я пытаюсь [imageViewArray objectAtInded:Index].center.x
, я получаю следующую ошибку.
Запрос на член «center» в чем-то, что не является структурой или объединением
Есть ли решение или обходной путь?
Комментарии:
1. Вы можете перебирать представления изображений в массиве и изменять их свойство center. В чем проблема, с которой вы столкнулись?
2. извините, я думаю, я не очень хорошо объясняю вещи, что я хочу сделать, это что-то вроде этого: [[imageViewArray objectAtIndex:Index] setCenter:CGPointMake([imageViewArray objectAtIndex:Index].x 5, [imageViewArray objectAtIndex:Index].y 5])]; но, очевидно, этоневозможно так, как я это написал. теперь это имеет больше смысла?
3. Вы можете сделать это так? Почему вы говорите, что это невозможно?
4. я не могу поверить, что я этого не уловил. я просто ответил на свой собственный вопрос, не осознавая этого. я полагаю, поскольку я использовал «setCenter», мне нужно было бы получить доступ к точкам x и y одинаково. итак, я искал решение, похожее на синтаксис [[imageViewArray objectAtIndex:Index] setCenter:], который я не подумал попробовать «.» синтаксис. я чувствую себя таким дураком. в любом случае, спасибо, что нашли время, чтобы просмотреть мой вопрос и внести свой вклад.
5. хорошо, я был неправ / прав, но просто поймите, в чем проблема с использованием [imageViewArray objectAtIndex:Index].center.x. когда я пытаюсь использовать его таким образом, я получаю следующую ошибку: «запрос на член «center» в чем-то, что не является структурой или объединением». вот почему я искал альтернативу. извините за путаницу, я также отредактирую свой первоначальный вопрос.
Ответ №1:
Чтобы получить доступ к x
y
значениям и массива UIImageViews
, вы должны использовать следующее.
[imageViewArray objectAtIndex:Index] center].x
При этом я смог использовать следующее.
UIImageView.center = CGPointMake(UIImageView.center.x 5, UIImageView.center.y 5);
Вот так:
[[imageViewArray objectAtIndex:Index] setCenter:CGPointMake([imageViewArray objectAtIndex:Index] center].x 5, [imageViewArray objectAtIndex:Index] center].y 5)];
Еще раз извините за беспорядок и любую путаницу, которую я мог вызвать. Я чертовски перепутал себя с этим.
(Я нашел решение и подумал, что лучше поделиться им на случай, если кто-нибудь еще столкнется с такой же проблемой.)