一、使用方法:
 
#import "MJPhotoBrowser.h"
#import "MJPhoto.h"
 
- (void)tapPhoto:(UITapGestureRecognizer *)recognizer
{
    //1.创建图片浏览器
    MJPhotoBrowser *brower = [[MJPhotoBrowser alloc] init];
   
    //2.告诉图片浏览器显示所有的图片
    NSMutableArray *photos = [NSMutableArray array];
    for (int i = 0 ; i < self.photos.count; i++) {
        Photo *pic = self.photos[i];
        //传递数据给浏览器
        MJPhoto *photo = [[MJPhoto alloc] init];
        photo.url = [NSURL URLWithString:pic.bmiddle_pic];
        photo.srcImageView = self.subviews[i]; //设置来源哪一个UIImageView
        [photos addObject:photo];
    }
    brower.photos = photos;
   
    //3.设置默认显示的图片索引
    brower.currentPhotoIndex = recognizer.view.tag;
   
    //4.显示浏览器
    [brower show];
}
 
 
二、我用到的具体实例:
 
1)腾讯聊天cell中获取第几张照片,并打开图像浏览器
 
- (void)TecentChatImageCellShouldShowFullScreen:(TecentChatImageCell *)cell
{
    MJPhotoBrowser *browser = [[MJPhotoBrowseralloc] init];
   
    browser.currentPhotoIndex = [selfgetPicUrl:cell.indexPath.row];//获取播放第几个图片
   
    browser.photos = _localPicMsgArray;//数组中的是MJPhoto对象
    [browser show];
    //当键盘拉起的时候, 需要关闭键盘, 否则图片显示一半
    [selfdoEndEditGesture];
}
 
2)方法来返回第几个元素
 
- (NSInteger)getPicUrl:(NSInteger)dd
{
    NSInteger c = 0;
    NSInteger d = 0;
    [_localPicMsgArrayremoveAllObjects];
    for (int i=0;i<self.dataSource.count;++i) {
        id model = self.dataSource[i];
        NSInteger type = [NSDictionary_Number_Object_ForKey(model, @"type") integerValue];
        if (type == MESSAGE_TYPE_IMAGE) {
            NSString* imageURL = [model objectForKey:@"imageURLpath"];//远程URL的image
            NSString* imagePath = [model objectForKey:@"path"];//本地URL的image
            MJPhoto *photo = [[MJPhotoalloc] init];
            if (IS_NS_STRING_EMPTY(imageURL)) {
                //通过本地URL来查找iamge的方法
                for (IDSPicSendModel *picModel in_localPicImageMsgArray) {
                    if ([picModel.picPathisEqualToString:imagePath]) {
                        photo.image = picModel.picImage;
                        NSLog(@"%@",picModel.picPath);
                        break;
                    }
                }
            }
            else {
                //取远程URL方法
                photo.url = [NSURLURLWithString:imageURL];
            }
            [_localPicMsgArraycl_addObject:photo];
            if (i == dd) {
                c = d;
            }
            ++d;
        }
    }
    //返回的是第几个图片元素
    return c;
}
 
 

MJPhotoBrowser 用法的更多相关文章

  1. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  2. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  3. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  4. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  5. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  6. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  7. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  8. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

  9. 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)

    vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...

随机推荐

  1. 经典图形的绘制(matlab)

    1. radial sinusoïdal signal:径向正弦信号 [xx, yy] = meshgrid(-50:50); I = sin(sqrt(xx.^2+yy.^2)); imshow(I ...

  2. 改变浏览器中默认的ctrl+s方法

    在一般的情况下,我们在浏览网页的时候按下ctrl+s,浏览器会弹出一个保存网页的框. 但是在一些特定的网页中,我们希望ctrl+s不是弹出默认的保存窗口,而是进行一下别的操作. 比如在我们使用简书的时 ...

  3. ThoughtWorks、Teambition、Trello、Slack、DevCloud 主流敏捷软件开发工具平台比较

    在大公司做了6年程序员,2年项目经理的小王,正在创业公司迎来他焦虑的而立之年. 但是对于3个月前加入创业公司的决定,他现在有些烦躁和怀疑人生.在他过往的经验看来,公司新接的小项目,在过去的大公司里1个 ...

  4. 使用相对路径导入ado库的方法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 常用的导入ado库的语句: #import "c:\program files\common files\s ...

  5. 【Python注意事项】如何理解python中间generator functions和yield表情

    本篇记录自己的笔记Python的generator functions和yield理解表达式. 1. Generator Functions Python支持的generator functions语 ...

  6. 数据中台解析Hive SQL过程

    一.数据中台解析SQL的目的: 数据中台需要对外提供数据特征查询的能力,因此中台查找并解析各个平台的sql,找出哪些表中的字段经常被使用,以便沉淀为特征,而我们要做的是找出sql中的数据表及其字段.以 ...

  7. Android Studio右键选项中没有Git?

    从Git clone一个Project并打开后,都会习惯性的像使用Eclipse一样,选中project右键,选择Git的相应版本号控制选项. 例如以下图,你仅仅看到了svn. 怎样配置才干在右键选项 ...

  8. Qt Installer Framework 3.0.1 Released(功能比较强)

    We are happy to announce the release of Qt IFW 3.0.1. 3.0.1 is fully compatible with 2.0.5, which me ...

  9. CefSharp For WPF自定义右键菜单栏

    原文:CefSharp For WPF自定义右键菜单栏 初始化 <!--浏览器--> <cefSharpWPF:ChromiumWebBrowser Name="webBr ...

  10. opengl实现直线扫描算法和区域填充算法

    总体介绍 1.   使用线性扫描算法画一条线,线性离散点 2.   利用区域填充算法画多边形区域,区域离散的点 开发环境VS2012+OpenGL 开发平台 Intel core i5,Intel H ...