Настройка нескольких экземпляров UIImageView - PullRequest
1 голос
/ 01 сентября 2009

Я хотел бы создать сетку UIImageView 4 x 6, каждый из которых содержит немного другое изображение. Я также хотел бы иметь возможность случайным образом выбрать один из экземпляров и изменить его изображение.

Мой вопрос заключается в том, каков наилучший способ настройки UIImageViews в сетке, выполнения нескольких действий между каждой настройкой и случайного выбора 1 из 24 экземпляров после завершения установки. Оптимально, мне бы не пришлось настраивать каждую по одной.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 02 сентября 2009

Существуют различные подходы, которые вы можете использовать, в зависимости от того, хотите ли вы использовать Interface Builder для компоновки вашей сетки.

Одним из вариантов является размещение ваших 24 UIImageViews как подпредставлений общего родительского представления в IB. На вкладке View Attributes вы можете установить число «Tag» от 1 до 24, чтобы дифференцировать ваши UIImageViews. Затем в вашем коде вы можете использовать [parentView viewWithTag: tagNumber] для доступа к каждому UIImageView.

Если вы предпочитаете делать вещи более программно, вы можете создать каждый из ваших UIImageViews в цикле в методе loadView вашего подкласса UIViewController. Вы можете сохранить массив (или массив массивов, соответствующих строкам и столбцам) как свойство вашего контроллера и сохранять ссылку на каждое из этих представлений изображения при их создании. Для каждого создаваемого вами UIImageView установите его свойство imageView.frame, чтобы определить его положение, затем вызовите [view addSubview: imageView], чтобы добавить его в родительское представление.

1 голос
/ 22 января 2010

Я бы сделал это программно ради тебя.

NSArray *myViews = //I assume you can create an array of views

for (int i=0; i<rows; ++i) {
    for (int j=0; j<columns; ++j) {
        UIImageView *thisImageView = [myViews objectAtIndex:(i*columns+j)];
        CGSize size = thisImageView.image.size;
        [thisImageView setFrame:CGRectMake(j*size.width, i*size.height, size.width, size.height)];
        [self.view addSubview:thisImageView];
    }
}

//Later to pick one randomly
UIImageView *myRandomView = [myViews objectAtIndex:(arc4random()%[myViews count])];
[myRandomView setImage:myNewImage];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...