我创建了一个带有两个按钮和一个uiimageview的简单应用程序。
一个按钮从照片库中拍摄一张照片并将其放在uiimageview上。
当用户添加另一张照片时,应该保存旧照片,然后用户可以在这两张照片之间滑动。

另一个按钮拍摄照片并将其放在uiimageview上。

所以现在我真的很困惑在照片之间滑动。我读到uiimageview只能包含一个图像。另外,我读到我需要将uiScrollView添加到UiImageView,但我不知道它们如何协同工作。

我应该删除UIImageView然后创建ScrollView代替它吗?

这是我的代码

- (void)viewDidLoad {

    [super viewDidLoad];


}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}


    - (IBAction)pickPhoto:(id)sender {

        picker1 = [[UIImagePickerController alloc]init];
        picker1.delegate = self;
        [picker1 setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
        [self presentViewController:picker1 animated:YES completion:NULL];

    }

    - (IBAction)takePhoto:(id)sender {

        picker2 = [[UIImagePickerController alloc]init];
        picker2.delegate = self;
        if([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]){

        }
        else{
            NSLog(@"not avaialbe");

        }
        [self presentViewController:picker2 animated:YES completion:NULL];

    }

    - (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
        image = [info objectForKey:UIImagePickerControllerOriginalImage];
        [self.imageView setImage:image];
        [self dismissViewControllerAnimated:YES completion:NULL];
    }

    - (void) imagePickerControllerDidCancel:(UIImagePickerController *)picker
    {
        [self dismissViewControllerAnimated:YES completion:NULL];
    }


更新

因此,我添加了一种方法,该方法允许用户向左或向右滑动,并且他可以看到不同的图片,但是,我不得不将我的图像硬编码到代码中。但是我想从照片库中选择图像,然后将这些图像保存在数组中,然后,如果用户添加更多图片,他可以选择浏览其旧图像。

这是我在图像中滑动的代码

- (IBAction)Swipe:(id)sender {
    NSArray *images = [[NSArray alloc]initWithObjects:@"ayat.png", @"qwe.png",@"4444", @"15", nil];
    UISwipeGestureRecognizerDirection direction = [(UISwipeGestureRecognizer *) sender direction];

    switch(direction)
    {
        case UISwipeGestureRecognizerDirectionLeft:
            imageIndex++;
            break;

        case UISwipeGestureRecognizerDirectionRight:
            imageIndex--;
            break;
        default:
            break;


    }
    imageIndex = (imageIndex <0)?([images count] -1 ):
    imageIndex % [images count];
    self.imageView.image = [UIImage imageNamed:[images objectAtIndex:imageIndex]];

}


但在这里我将图片添加到我的项目中。

最佳答案

的确,UIImageView只能显示单个图像。

有多种方法可以解决此问题。一种方法是使用UIPageViewController。这样一来,您就可以在内容页面之间设置基于侧向滑动的分页。苹果公司有一个名为PhotoScroller的示例应用程序(该应用程序以前是从Xcode帮助系统链接的。在Xcode 6中,苹果似乎已删除了所有示例代码。您必须在网上搜索该示例应用程序。该应用程序也包括平铺渲染,这可能对您的应用程序来说是多余的,但是它确实显示了如何设置页面视图控制器。

您还可以使用UICollectionView,或创建自己的自定义视图来管理一组视图。

实际上,现在考虑一下,为分页设置的UICollectionView可能是最好的选择。

关于ios - 将UIImageView扩展为可滑动的元素,可以显示多张照片,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28993438/

10-13 09:03