создать несколько изображений, как в приложении для фото iphone SDK - PullRequest
0 голосов
/ 26 октября 2009

Как создать представление с несколькими изображениями, чем-то похожее на приложение для фотографий на iphone?

* БЛАГОДАРЯ 1003 *

Ответы [ 3 ]

3 голосов
/ 26 октября 2009

Так, если вы хотите, например, сетку изображений 4 на 4 (размером 20x20), вы можете использовать представление прокрутки и добавить к нему UIImageViews что-то вроде

UIScrollView *s= [[UIScrollView alloc] initWithFrame:someFrame]
int position x=10;
int position y=10;
for(int i=1; i<=pictures.count; i++)
{
    UIImageView *image= [[UIImageView alloc] initWithFrame:CGRectMake(x,y,20,20)]
    image.image=[UIImage imageNamed:..] //initialize the image for the view
    [s addSubview:image];
    if(i%4==0) //means you need to start a new row
     {
          y+=20; //you can tweak this to make it look how you like
          x=10; //come back to the beggining
     }
   else
      x+=10; //again tweak this to make it "look" right

}
1 голос
/ 26 октября 2009

Мой стандартный ответ: посмотрите TTPhotoViewController в проекте Three20 :

TTPhotoViewController эмулирует Apple Фото приложение со всеми его фильмами щепотка восторга. Вы можете поставить свой собственный "фотоисточники", которые работают аналогично источникам данных, используемым UITableView. В отличие от фотографий Apple приложение, оно не ограничивается сохраненными фотографиями на местном уровне. Ваши фотографии могут быть загружены из сети, и длинные списки фотографии могут быть загружены постепенно.

0 голосов
/ 09 июля 2011

У меня лучше работает (модифицированный код Дэниела):

UIScrollView *s = [[UIScrollView alloc] initWithFrame:someFrame];
int numOfColumns = 4;
int numOfRows = imagesArray.count/numOfColumns+1;
int space = 10;
int width = (s.frame.size.width-(numOfColumns+1)*space)/numOfColumns;
int height = width;
int x = space;
int y = space;
for (int i=1; i<=imagesArray.count; i++) {
    UIImageView *image= [[UIImageView alloc] initWithFrame:CGRectMake(x,y,width,height)];
    image.image = [UIImage imageWithData:[imagesArray objectAtIndex:i-1]];
    [s addSubview:image];
    [image release];
    if (i%numOfColumns == 0) {
        y += space+height;
        x = space;
    } else {
        x+=space+width;
    }
}
int contentWidth = numOfColumns*(space+width)+space;
int contentHeight = numOfRows*(space+height)+space;
[s setContentSize:CGSizeMake(contentWidth, contentHeight)];
[self.view addSubview:s];

imagesArray является Array из NSData

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