MWPhotoBrowser 属性详解 和代理解释
--------0.MWPhoto简单属性解释----------------
MWPhoto *photo = [MWPhoto photoWithURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3629/3339128908_7aecabc34b.jpg"]];
photo.caption = @"在将photo添加到数组中时,可以在这里设置标题名字";
photo = [MWPhotophotoWithURL:[NSURLfileURLWithPath:[[NSBundlemainBundle]pathForResource:@"photo2"ofType:@"jpg"]]];
photo.caption =@"The London Eye is a giant Ferris wheel situated on the banks of the River Thames, in London, England.";
[photos addObject:photo];
效果图
==============================1.属性详解==========================
MWPhotoBrowser *browser = [[MWPhotoBrowseralloc]initWithDelegate:self];
//分享按钮,默认是
browser.displayActionButton =NO;
//底部是否分页切换导航,默认否
browser.displayNavArrows =NO;
////是否显示选择按钮在图片上,默认否
browser.displaySelectionButtons =YES;
//控制条件控件是否显示,默认否
browser.alwaysShowControls =NO;
//自动适用大小,默认是
browser.zoomPhotosToFill =YES;
//是否允许用网格查看所有图片,默认是
browser.enableGrid =NO;
////是否第一张,默认否
browser.startOnGrid =YES;
//是否开始对缩略图网格代替第一张照片
browser.enableSwipeToDismiss =NO;
//是否自动播放视频
browser.autoPlayOnAppear =NO;
//播放页码
[browser setCurrentPhotoIndex:0];
//自定义选择按钮的样式
//大图时显示选择按钮,(图片大小要和ImageSelectedOn图大小一致)
// browser.customImageSelectedIconName = @"选中";
//选择多图的时候,图片大小要和ImageSelectedSmallOn图大小一致)
// browser.customImageSelectedSmallIconName = @"选中";
[self.navigationControllerpushViewController:browseranimated:YES];
==============================2.代理方法解释==========================
/*****************************必须实现的代理方法********************************/
//有多少个图片要显示
- (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser {
returnself.photoesArray.count;
}
//在具体的index中,显示网络加载或者本地的某一个图片
- (id<MWPhoto>)photoBrowser:(MWPhotoBrowser *)photoBrowser
photoAtIndex:(NSUInteger)index {
if (index <self.photoesArray.count) {
return [self.photoesArrayobjectAtIndex:index];
}
returnnil;
}
图片效果图:
/*****************************可选实现的代理方法********************************/
//自定义标题
- (NSString *)photoBrowser:(MWPhotoBrowser *)photoBrowser
titleForPhotoAtIndex:(NSUInteger)index {
return [NSStringstringWithFormat:@"%lu/%lu", (unsignedlong)index,
(unsignedlong)self.photoesArray.count];
}
图片效果图:
//加载多张网络缩略图(enableGrid= YES)时,才可以实现该委托方法
- (id <MWPhoto>)photoBrowser:(MWPhotoBrowser *)photoBrowser thumbPhotoAtIndex:(NSUInteger)index{
if (index <self.photoesArray.count) {
return [self.photoesArrayobjectAtIndex:index];
}
returnnil;
}
效果图显示 1 和 2:
//自定义底部视图,继承MWCaptionView这个类,在子类中重写-setupCaption和 -sizeThatFits:,或者加视图。
- (MWCaptionView *)photoBrowser:(MWPhotoBrowser *)photoBrowser captionViewForPhotoAtIndex:(NSUInteger)index{
MWPhoto *photo = [self.photoesArrayobjectAtIndex:index];
MWCaptionView *captionView = [[MWCaptionViewalloc]initWithPhoto:photo];
// captionView.
return captionView;
}
效果视图:
//将displayActionButton(分享按钮)设置为YES时,这个方法才会触发。之前的分享动作就不会出现。
- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser actionButtonPressedForPhotoAtIndex:(NSUInteger)index{
NSLog(@"content %lu",(unsignedlong)index);
}
效果图
//当前将要显示第几张
- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser didDisplayPhotoAtIndex:(NSUInteger)index{
NSLog(@"content %lu",(unsignedlong)index);
}
效果图:
//设置将要显示的视图,是否被选或者没有被选,把它放到一个数组中。
- (BOOL)photoBrowser:(MWPhotoBrowser *)photoBrowser isPhotoSelectedAtIndex:(NSUInteger)index {
return [[_selectionsobjectAtIndex:index] boolValue];
}
//当前显示图片,选择按钮是否被选,或者没有被选,会触发这个方法
- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index selectedChanged:(BOOL)selected {
[_selectionsreplaceObjectAtIndex:index withObject:[NSNumbernumberWithBool:selected]];
NSLog(@"Photo at index %lu selected %@", (unsignedlong)index, selected ? @"YES" :@"NO");
}
////如果是modal出来的,必须手动dismiss掉
/*
当要modal出来的时候,需要使用包装上一个UINavigationController,它可以来管理多张图问题。
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:browser];
nc.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:nc animated:YES completion:nil];
*/
- (void)photoBrowserDidFinishModalPresentation:(MWPhotoBrowser *)photoBrowser{
[self dismissViewControllerAnimated:YES completion:nil];
}
MWPhotoBrowser 属性详解 和代理解释的更多相关文章
- OutputCache属性详解(二)一 Location
目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...
- Android组件---四大布局的属性详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4372222.html Android常见布局有下面几种: LinearL ...
- Android中的windowSoftInputMode属性详解
这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下 在前面的一篇文章中 ...
- [转]CSS vertical-align属性详解 作者:黄映焜
CSS vertical-align属性详解 posted @ 2014-08-26 17:44 黄映焜 前言:关于vertical-align属性. 实践出真知. 垂直居中. 第二种用法. ...
- Linux文件权限与属性详解 之 SUID、SGID & SBIT
Linux文件权限与属性详解 之 一般权限 Linux文件权限与属性详解 之 ACL Linux文件权限与属性详解 之 SUID.SGID & SBIT Linux文件权限与属性详解 之 ch ...
- Linux文件权限与属性详解 之 一般权限
目录 一般属性 1. iNode: 3152621 2. 文件类型 3.文件访问权限 4. 链接数目: 5. 文件所有者 6. 文件所属组 7. 文件大小 8. 修改时间 9. 文件名称 Linux文 ...
- border-sizing属性详解和应用
box-sizing用于更改用于计算元素宽度和高度的默认的 CSS 盒子模型.它有content-box.border-box和inherit三种取值.inherit指的是从父元素继承box-sizi ...
- JavaScript对象的property属性详解
JavaScript对象的property属性详解:https://www.jb51.net/article/48594.htm JS原型与原型链终极详解_proto_.prototype及const ...
- css 14-CSS3属性详解:Web字体
14-CSS3属性详解:Web字体 #前言 开发人员可以为自已的网页指定特殊的字体(将指定字体提前下载到站点中),无需考虑用户电脑上是否安装了此特殊字体.从此,把特殊字体处理成图片的方式便成为了过去. ...
随机推荐
- 编译安装 gcc 4.9并验证使用
编译安装 gcc 4.9并验证使用 1. 准备环境(GCC 编译器) centOS 6.3 cat /proc/version Linux version 2.6.32-279.el6.x86_64 ...
- 【HDU】5249-KPI(线段树+离散化)
好久没写线段树都不知道怎么写了... 很easy的线段树二分问题 #include<cstdio> #include<set> #include<queue> #i ...
- 时间格式化函数strftime
#include <time.h> #include <stdio.h> #include <string.h> int main() { char ti ...
- MongoDB(六)java操作mongodb增删改查
java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...
- VS添加程序集
项目->添加->引用->程序集 可在项目的引用目录中,查看引用的程序集
- C++ 补课(二)
1,如果遇到派生类成员和基类成员的名称冲突的情况,程序会采用派生类成员执行相应的操作.如果需要使用基类中的同名成员,则必须在程序中使用全局分辨符“::” 虚基类 —— 派生类在继承基类时加入“virt ...
- cf1089d Distance Sum
题目大意 给一个有n个点,m条边的无向连通图,求所有点两两之间的最短路.$(2<=n<=10^5;n-1<=m<=n+42)$ solution 我们注意到$m-n+1$很小. ...
- 使用Vue动态生成form表单
form-create 表单生成器 具有数据收集.校验和提交功能的表单生成器,支持双向数据绑定和事件扩展,组件包含有复选框.单选框.输入框.下拉选择框等表单元素以及省市区三级联动,时间选择,日期选择, ...
- mysql存储emoji表情报错处理,qq互联mysql存储昵称中带表情的数据时报错。
前言 做qq互联登录时发现一个问题,如果qq昵称中有表情时存入mysql数据库会报错. java.sql.SQLException: Incorrect string value: "ð&q ...
- 【Django】MEDIA的配置及用法
如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA. 下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法. 第一步 settings.py # media配置 MEDIA_UR ...