Iphone中的网格视图实现?

时间:2013-03-09 11:39:06

标签: iphone ios gridview photo-gallery

嗨朋友们,我必须开发一个照片管理应用程序。在这里我的图像应该安排在gris中查看我的iphone.i在谷歌分析我得到了一些框架工作。以下列表是

1.UICollectionView

2。AQGridView

3。PSTCollectionView

以及我在网格视图中的功能列在下面

  1. 该应用应与上述4.3 iOS
  2. 兼容
  3. 网格视图单元格允许UITapGestureRecognizer删除图像单元格或编辑样式选项,如表格视图中所示。

  4. 创建自定义GridView单元格

  5. 请任何一个人能够把我发展好吗

4 个答案:

答案 0 :(得分:1)

如果您创建自定义按钮,将图像路径存储在数组中,编写for循环以显示每行中的图像数量会更好。在每个自定义按钮中插入这些图像。它现在看起来像一个缩略图图像。

像这样,

imageArray =[[NSMutableArray alloc]init];
               for (NSString* path in imagePath)
               {
                   [imageArray addObject:[UIImage imageWithContentsOfFile:path]];
                   NSLog(@"%@",path);
               }
               NSLog(@"%@",imageArray);

           NSLog(@"Yes");

           myScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 840.0)];
           myScrollView.delegate = self;
           myScrollView.contentSize = CGSizeMake(320.0, 840.0);
           myScrollView.backgroundColor = [UIColor whiteColor];
           [self.view addSubview:myScrollView];

           float horizontal = 8.0;
           float vertical = 8.0;

           for(int i=0; i<[imageArray count]; i++)
           {
               if((i%4) == 0 && i!=0)
               {
                   horizontal = 8.0;
                   vertical = vertical + 70.0 + 8.0;
               }

               buttonImage = [UIButton buttonWithType:UIButtonTypeCustom];
               [buttonImage setFrame:CGRectMake(horizontal, vertical, 70.0, 70.0)];
               [buttonImage setTag:i];

               [buttonImage setImage:[imageArray objectAtIndex:i] forState:UIControlStateNormal];
               [buttonImage addTarget:self action:@selector(buttonImagePressedSmiley forControlEvents:UIControlEventTouchUpInside];
               [buttonImage setImage:[UIImage imageNamed:@"check.jpg"] forState:UIControlStateSelected];


               [myScrollView addSubview:buttonImage];

               horizontal = horizontal + 70.0 + 8.0;
           }

           [myScrollView setContentSize:CGSizeMake(320.0, vertical + 78.0)];

<强>解释

图像的路径存储在imagePath中。然后我们将imagePath存储在字符串(路径)中。现在,对于imageArray,我们正在添加路径的内容。因此imageArray现在包含所有图像的路径。然后创建一个for循环来显示每行4个图像。创建自定义按钮和按钮,逐个插入每个图像(使用imageArray)。创建一个滚动视图,将所有按钮图像放入其中。

您现在已完成为图像创建4 * 4网格视图。快乐的编码...

答案 1 :(得分:0)

似乎PSTCollectionView就是您所需要的。

它类似于UICollectionView,但适用于iOS 4.3。

您可以通过覆盖dataSource方法创建自定义单元格:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

此外,在此方法中,您可以为手机添加手势识别器。

答案 2 :(得分:0)

我目前正在使用 AQGridView 所以我肯定会推荐它,因为它是最少的错误,其功能与UITableView非常相似。

另外,如果您尝试在没有 XIB 的情况下执行此操作,则处理它会有点困难,但您可以使用Xib文件创建一个视图控制器来创建您选择的界面。 Evadne Wu {{1}}。 Here is the Video of how it can be done in the best possible way是示例项目

答案 3 :(得分:0)

ViewController.h

{
   NSMutableArray *galleryarray;
}
@property (retain, nonatomic) IBOutlet UIScrollView *scrolll_photo;

ViewController.m

 [self gallery];

Secondview.h

  NSMutableArray *imagesArraySlide;
     int imageCount;

@property (retain, nonatomic) IBOutlet UIScrollView *photoscroll;
@property (nonatomic, retain) NSMutableArray *imagesArraySlide;
@property (readwrite) int imageCount;
@property (readwrite) int imageID;


Secondview.m

 [self loadphoto];

-(void)loadphoto
{
    NSArray *viewsToRemove = [_photoscroll subviews];
    for (UIView *view in viewsToRemove)
    {
        [view removeFromSuperview];
    }
    imageCount = [imagesArraySlide count];
    _photoscroll.delegate = self;
    _photoscroll.contentSize=CGSizeMake(320*imageCount, 380);
    _photoscroll.scrollEnabled = TRUE;
    _photoscroll.pagingEnabled = TRUE;

    int scroll_x=0;
    for(int i=1; i<=imageCount; i++)
    {
        UIImageView *imageView1 = [[UIImageView alloc] initWithFrame:CGRectMake(scroll_x, 20, 320, 380)];
        imageView1.contentMode = UIViewContentModeScaleAspectFit;
        imageView1.clipsToBounds = NO;
        imageView1.autoresizingMask = UIViewContentModeScaleAspectFit;
        imageView1.image=[UIImage imageNamed:[imagesArraySlide objectAtIndex:i-1]];
        [_photoscroll addSubview:imageView1];
        [imageView1 release];
        scroll_x = scroll_x + 320;
    }
    [_photoscroll setContentOffset:CGPointMake(imageID*320, 0) animated:NO];
    self.title = [NSString stringWithFormat:@"%d of %d",imageID+1,imageCount];
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    imageID = scrollView.contentOffset.x / scrollView.frame.size.width;
    self.title = [NSString stringWithFormat:@"%d of %d",imageID+1,imageCount];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    self.title = [NSString stringWithFormat:@"%d of %d",imageID+1,imageCount];
}