iOS создает матрицу UIButtons - PullRequest
0 голосов
/ 15 ноября 2011

Я загружаю предварительные изображения (миниатюры) с сервера и сохраняю их в локальный каталог документов. Для каждого изображения есть основной ввод данных.

Теперь мне нужно отобразить эти миниатюры в ScrollView. Я не знаю, сколько эскизов будет в будущем, поэтому мне нужно программно отобразить большие пальцы в ScrollView. Я знаю, что я должен установить высоту scrollView в зависимости от количества миниатюр тоже.

Миниатюры должны быть сенсорными, потому что нажатие на миниатюру должно открыть другой диалог.

Первый вопрос: Какой правильный элемент управления использовать для отображения миниатюр? Это UIButton как пользовательская кнопка с миниатюрой, установленной как Background-Image?

Второй вопрос: как настроить динамическую матрицу для отображения больших пальцев (кнопок).

Спасибо

1 Ответ

1 голос
/ 15 ноября 2011

Первый ответ: я бы порекомендовал использовать UIButton для этой цели, это то, что я бы сделал в этой ситуации

Второй ответ: Предположим, у вас есть массив всех ваших миниатюр,затем вы можете просто перебирать их, создавая все кнопки способом, подобным следующему:

NSArray *thumbnailImages;
UIScrollView *scrollView;
//Scrollview is linked up through IB or created dynamically...whatever is easier for you
//The thumbnailImages array is populated by your list of thumbnails

//Assuming that your thumbnails are all the same size:
const float thumbWidth = 60.f;//Just a random number for example's sake
const float thumbHeight = 90.f;
//Determine how many thumbnails per row are in your matrix.
//I use 320.f as it is the default width of the view, use the width of your view if it is not fullscreen
const int matrixWidth = 320.f / thumbWidth;

const int contentHeight = thumbHeight * (thumbnailImages.count / matrixWidth);

for ( int i = 0; i < thumbnailImages.count; ++i )
{

    int columnIndex = i % matrixWidth;
    int rowIndex = i / matrixWidth;//Intentionally integer math

    UIImage* thumbImage = [thumbnailImages objectAtIndex:i];
    UIButton* thumbButton = [[UIButton alloc] initWithFrame:CGRectMake(columnIndex*thumbWidth, rowIndex*thumbHeight, thumbWidth, thumbHeight)];

    thumbButton.imageView.image = thumbImage;

    [scrollView addSubView:thumbButton];

    [thumbButton release];
}

[scrollView setContentSize: CGSizeMake(320.f, contentHeight)];

Не обязательно принимать это слово в слово как код, я просто написал это в блокноте, ноэто должно дать вам общее представление о том, как это сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...