一、使用方法:
 
#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. iOS开发 - OC - block的详解 - 深入篇

    深入理解oc中的block 苹果在Mac OS X10.6 和iOS 4之后引入了block语法.这一举动对于许多OC使用者的编码风格改变很大.就我本人而言,感觉block用起来还是很爽的,但一直以来 ...

  2. In partitioned databases, trading some consistency for availability can lead to dramatic improvements in scalability.

    In partitioned databases, trading some consistency for availability can lead to dramatic improvement ...

  3. JavaScript(js)获取本周,本月,本季,本年,上月,上周,上季,去年,上二周,上二月的时间段的代码

    function dateChange(name){ var beginTimeObject = document.getElementById("beginTime"); var ...

  4. c语言bit倒置最好的算法-离msb-lsb至lsb-msb

    问题 什么是例如最好的算法,下面的转换? 0010 0000 => 0000 0100 从详细的转换MSB->LSB至LSB->MSB, 所有的Bit必须扭转,着.这并非字节顺序的交 ...

  5. 从JDBC到commons-dbutils

    1.前言 玩过Java web的人应该都接触过JDBC,正是有了它,Java程序才能轻松地访问数据库.JDBC很多人都会,但是为什么我还要写它呢?我曾经一度用烂了JDBC,一度认为JDBC不过如此,后 ...

  6. keras 的使用

    theano 以及 TensorFlow 是 keras 的 backend(后端支持),因此,keras 本质上是对 thenao 或者 TensorFlow 的进一步封装(wrapper). ke ...

  7. 使用python移动飞信模块发送短信

    作者:miaoo 1.应用场景 由于自己做的一个系统需要用到发送短信到自己手机的功能,于是搜索了一下,发现了一个通过移动飞信通道发送短信开源库:PyFetion PyFetion 模拟实现了飞信的通信 ...

  8. 从hadoop 要删除字符串匹配指定的任务

    我们都知道,假设 hadoop job -list 获取当前正在执行的hadoop 任务,返回的结果例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...

  9. python3 基本使用多线程

    #coding=utf-8 import threading #进口threading from time import sleep import time def task1(): print (& ...

  10. dumpbin判断windows程序是32还是64位(包括DLL)

    http://blog.csdn.net/csfreebird/article/details/10105681 dumpbin /HEADERS gdal18.dll(or xxx.exe) 如果安 ...