【问题标题】:How to show images like the way of iPhone native photo album (4 images in a row)?如何像 iPhone 原生相册那样展示图片(连续 4 张图片)?
【发布时间】:2011-07-28 04:35:45
【问题描述】:

我想用 iPhone 相机拍一些照片,然后像一堵墙一样展示它们(连续 4 张图像)。然后我可以选择其中一些来使用。有人帮忙吗?非常感谢!

【问题讨论】:

    标签: ios image camera


    【解决方案1】:

    您可以使用自定义按钮代替uiimageviews
    您可以使用此代码在相机按钮中添加图像。

    - (void)selectPhotos
    {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
        picker.delegate = self;
        [self presentModalViewController:picker animated:YES];
        [picker release];
    }
    
    - (void)imagePickerController:(UIImagePickerController *)picker
            didFinishPickingImage:(UIImage *)image
                      editingInfo:(NSDictionary *)editingInfo
    {
        [button setImage:image forState:UIControlStateNormal];
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    }
    

    然后在选择器方法中,您可以像这样从按钮中检索图像

    button.imageView.image
    

    【讨论】:

    • 使用按钮是一种有趣的方式!我会尝试。非常感谢!
    【解决方案2】:

    或者...你可以只使用 UIImageViews

    -(void)DrawImageViews:(UIImage*)fImage{
    
    float start_X=2.0;
    float start_Y_image=2.0;
    
    for(int idx=0;idx<12;idx++)
    {
        UIImageView *imageView = [ [ UIImageView alloc ] initWithFrame:CGRectMake(start_X, start_Y_image, 78, HEIGHT)];
        imageView.image=fImage;
    
        [self addSubview:imageView];
        [imageView release];
    
        if((idx+1)%4==0 && idx!=0) {
            start_X=2.0;
            start_Y_image += HEIGHT+2;
        }
        else
            start_X += 78 + 2;
        }}
    

    在这里,我已经绘制了 12 次相同的图像,并在两侧保留了 2 的填充。然后,您可以使用委托方法找到被点击的行和列:

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch =[touches anyObject];
    CGPoint currentPoint =[touch locationInView:self];
    
    NSInteger column = ((NSInteger)((currentPoint.x)/80) + 1);
    NSInteger row = ((NSInteger)((currentPoint.y)/(HEIGHT + 2) + 1);}
    

    我在这里本地声明了行和列。您必须从外部访问!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 2011-09-26
      相关资源
      最近更新 更多