Исходный код галереи изображений iPhone - PullRequest
0 голосов
/ 25 октября 2010

Привет всем, может кто-нибудь, пожалуйста, сослаться мне, исходный код галереи изображений iphone?Любая ссылка, пример кода будет очень полезна.

Я пытаюсь показать от 70 до 100 изображений в виде миниатюр, и при выборе любого изображения, оно должно дать полный вид этого изображения, я пытаюсь выполнитьчто бы ни было в картинной галерее iphone, я подумал, что должен быть любой пример кода.предложения всегда приветствуются

привет

Ответы [ 2 ]

8 голосов
/ 29 октября 2010

В методе didload вызовите два метода, чтобы создать вид прокрутки и кнопку с миниатюрами. Сохраняйте эскизы и массив изображений обоев в одном порядке.

-(void)createScrollView
{
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 440)];
scrollView.pagingEnabled = YES;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
scrollView.scrollsToTop = NO;
scrollView.delegate = self;
scrollView.contentSize = CGSizeMake(320 * (([imagesArray count]- 1) / 25 + 1), 440);

scrollView.backgroundColor=[UIColor blackColor];
[self.view addSubview:scrollView];

}

 -(void)createButton{
for (int i = 0; i < [imagesArray count]; i++) 
{

    thumbNailButton = [UIButton buttonWithType:UIButtonTypeCustom];
    thumbNailButton.frame = CGRectMake(6 + 62 * (i % 5) + 320 * (i / 25), 5+65 * ((i / 5) % 5), 56,56);

    img = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 56, 56)];
    [img setImage:[UIImage imageNamed:[imagesArray objectAtIndex:i]]];
    thumbNailButton.tag=i;
    [thumbNailButton addTarget:self action:@selector(imageClicked:) forControlEvents:UIControlEventTouchUpInside];   
    [thumbNailButton addSubview:img];
    [scrollView addSubview:thumbNailButton];

}

}

 -(void)imageClicked:(id)sender{
UIButton* button = (UIButton*)sender;
    AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];
[appDelegate setimageClickedValue:button.tag];

LargeWallPaperviewController *largeWallPaperViewController=[[LargeWallPaperviewController alloc]initWithNibName:@"LargeWallPaperviewController" bundle:nil];
[self.navigationController pushViewController:largeWallPaperViewController animated:YES];
[largeWallPaperViewController release];
}

В классе largewallpaperviewcontroller в методе didload

   [imagesArray addObjectsFromArray:[NSArray arrayWithObjects:@"wallf1.jpg",@"wallf2.jpg",@"wallf3.jpg",@"wallf4.jpg",@"wallf5.jpg",@"wallf6.jpg",@"wallf7.jpg",nil]];

scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 440)];
scrollView.pagingEnabled = YES;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
scrollView.scrollsToTop = NO;
scrollView.delegate = self;
scrollView.contentSize = CGSizeMake(320 * ([imagesArray count] ), 440);
scrollView.backgroundColor = [UIColor blackColor];
[self.view addSubview:scrollView];

for (int i = 0; i < [imagesArray count]; i++) 
{

    wallPaperButton=[UIButton buttonWithType:UIButtonTypeCustom];
    wallPaperButton.tag=i;
    wallPaperButton.frame=CGRectMake((320*i),0, 320, 325);

    UIImageView *img =[ [UIImageView alloc]initWithFrame:CGRectMake(0,0, 320, 325)];

    img.image=[UIImage imageNamed:[imagesArray objectAtIndex:i]];
    img.contentMode=UIViewContentModeScaleAspectFit;            
    [wallPaperButton addSubview:img];
    [img release];


    [wallPaperButton addTarget:self action:@selector(imageSelected:) forControlEvents:UIControlEventTouchUpInside];     [scrollView addSubview:wallPaperButton];
}
appDelegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];
int imageValue=[appDelegate getimageClickedValue];
[scrollView scrollRectToVisible:CGRectMake(320*imageValue, 0, 320 , 440) animated:NO];

Я использовал кнопку в представлении большого экрана. Если вы хотите, чтобы вы удалили ее и напрямую добавили в представление изображений. Этот код работает для меня, измените его в соответствии с вашими требованиями. Его легко понять.

Всего наилучшего.

1 голос
/ 26 сентября 2012

Снимаю шляпу перед этим кодом.Это работает отлично.Хотя я изменил «appdelegate part», так как я использовал раскадровки.

Вот что я сделал

-(void)imageClicked:(id)sender{
     UIButton* button = (UIButton*)sender;
     imageNumber =  button.tag;
     [self performSegueWithIdentifier:@"loadImage" sender:sender];


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
 if ([segue.identifier isEqualToString:@"loadImage"])
 {

    [segue.destinationViewController setimageValue:imageNumber];
 }
}

И в моем месте назначения View Controller.m файл с именем 'ImageViewController' я реализовалвещи, как показано ниже

 -(void)setimageValue:(int)number;
 {
     self.imageValue = number;
 }

И в viewDidLoad вместо делегата приложения я просто использовал

    [self.scrollView scrollRectToVisible:CGRectMake(320*self.imageValue, 0, 320 , 440)          animated:NO];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...