选择相册图片

1)打开相册

- (void)openPicture
{
    UIImagePickerController *ipc = [[UIImagePickerController alloc]init];
    [ipc setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    ipc.delegate = self;
    [self presentViewController:ipc animated:YES completion:nil];
}

    //其他类型
typedef NS_ENUM(NSInteger, UIImagePickerControllerSourceType) {
    UIImagePickerControllerSourceTypePhotoLibrary,//相册
    UIImagePickerControllerSourceTypeCamera,//相机
    UIImagePickerControllerSourceTypeSavedPhotosAlbum//已保存图片
}

2)打开相册后导航栏设置

-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
    [viewController.navigationController.navigationBar setBackgroundImage:[[UIImage imageNamed:@"bg_navg.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:10]forBarMetrics:UIBarMetricsDefault];
    
    UIButton *leftBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 60, 30)];
    [leftBtn setTitle:@" " forState:UIControlStateNormal];
    leftBtn.enabled = NO;
    [leftBtn.titleLabel setFont:[UIFont boldSystemFontOfSize:16]];
    UIBarButtonItem *leftItem = [[UIBarButtonItem alloc] initWithCustomView:leftBtn];
    [viewController.navigationItem setLeftBarButtonItem:leftItem animated:YES];

    UIButton *cancelBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 60, 30)];
    [cancelBtn setTitle:@"取消" forState:UIControlStateNormal];
    [cancelBtn.titleLabel setFont:[UIFont boldSystemFontOfSize:16]];
    [cancelBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    UIBarButtonItem *cancelItem = [[UIBarButtonItem alloc] initWithCustomView:cancelBtn];
    [viewController.navigationItem setRightBarButtonItem:cancelItem animated:YES];
    [cancelBtn addTarget:self action:@selector(imagePickerControllerDidCancel:) forControlEvents:UIControlEventTouchUpInside];
    
    viewController.title = @"照片";
    NSDictionary *dic=[[NSDictionary alloc]initWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName,[UIColor clearColor],NSForegroundColorAttributeName,NSForegroundColorAttributeName,[UIFont systemFontOfSize:18], nil];
    [viewController.navigationController.navigationBar setTitleTextAttributes:dic];
}

3)点击图片回调方法(UIImagePickerControllerDelegate)

//点击相册的图片做什么
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //获取到点击的图片
    photoImage = [info objectForKey:UIImagePickerControllerOriginalImage];
    
    self.scanView.photoImgV.image = photoImage;
    
    //解析图片里的条形码
    readC = [[ZBarReaderController alloc]init];
    readC.readerDelegate = self;
    ZBarSymbol* symbol = nil;
    
    self.scanResult = @"";
    for (symbol in [readC scanImage:photoImage.CGImage]) {
        const zbar_symbol_t *symbol1 = symbol.zbarSymbol;
        self.scanResult = [NSString stringWithUTF8String: zbar_symbol_get_data(symbol1)];
    }
    
    //返回
    [self dismissViewControllerAnimated:YES completion:^{
        readC= nil;
        if(self.scanResult.length == 0)
        {
            [StaticTools showHUDInView:self.view HudType:MBProgressHUDModeText withText:@"扫描的图片无二维码"];
            return ;
        }

        NSRegularExpression *urlRegexExp = [[NSRegularExpression alloc] initWithPattern:@"^http(s){0,1}://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$" options:0 error:nil];
            if (urlRegexExp)
            {
                NSTextCheckingResult *checkingResult = [urlRegexExp firstMatchInString:self.scanResult options:0 range:NSMakeRange(0, [self.scanResult length])];
                if (checkingResult){
                    [self scanURL:self.scanResult];
                }
                else {
                    [self scanText:self.scanResult];
                }
            }
            else{
                [self scanResultError:self.scanResult];
            }
    }];
}

4)点击取消按钮响应方法

//点击取消按钮
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [self.navigationController dismissViewControllerAnimated:YES completion:^{
    }];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,732评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,425评论 25 708
  • 女人总是不理解男人为什么爱喝酒?其实一杯酒,男人喝下的是内心的感伤,世态人心的炎凉。一杯酒勾出的是男人思绪的回忆,...
    猫大叔在路上阅读 694评论 0 0
  • 感恩女儿的率真和单纯,使我明白为人父母的责任,想想我妈妈经常说的话,真是太有道理了,感恩女儿带给我的思考,谢谢她!...
    天门金珠瑜伽阅读 190评论 0 3
  • 远处响起了教堂的钟声,这就代表又有一对新人将在这里完成他们生命中最幸福的时刻。 今天是皓轩与邪雨璐的婚礼,在众...
    鹿子西阅读 253评论 0 0

友情链接更多精彩内容