哪款应用可以实现iOS平台的照片自定义文件夹排序自定义

3k助手推荐:《Anchor》iOS设备桌面图标自定义排列
日 14:26&&&出处:&& 作者:广州分站&& 编辑:广州分站
    现在这款插件已经完美支持iOS 8.4,安装好插件之后,插件开关会默认开启,此时用户就可以通过拖动图标的方式,将页面当中的图标任意摆放了,而并不需要一个接着一个的排列。用户可以根据自己的喜好,利用页面当中的图标摆出各种各样的造型,不管用户有几个页面都是可以进行分别排列的。如果用户不满意,还可以对界面进行重置,并进行重新排列。  后的小伙伴请在Cydia中添加“3K助手”源(),之后你可以在源中找到“系统工具”―“Anchor”―点击“安装”,按照提示一步步完成,最后点击“重启SpringBoard”即可。    现在这款插件就已经安装在你的设备中了,打开设置就可以看到,插件默认是开启的,你只需要长时间按住图标进入“抖动模式”就可以自动调整屏幕图标的布局了;  
大学生分期购物销量榜
看过本文的人还看了
2604人浏览 470人浏览 207人浏览 177人浏览
汽车之家内容精选
每日精选19039 科技真人秀节目《数码课代表》4820玩客 最好玩的活动与试用平台 169016编辑部的故事 197泡美美 分享最美科技 4865科技生活| 时间排序
从一个用户的角度,我对启动广告是比较恶心的,尤其是那些画面比较粗糙的广告。我更希望打开一个app之后,可以看到这个app的主题思想,或是比较简约的欢迎页面,这样我的第一印象会好一些,而且会觉得这个app正规一些(原谅我被山寨app咬怕了)。&br&比如这样的启动页我就比较喜欢?&br&&img data-rawwidth=&750& data-rawheight=&1334& src=&/6a91f3d3e156f52db7e446_b.png& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/6a91f3d3e156f52db7e446_r.png&&&br&当然如果广告时间比较短,一秒两秒的还是可以接受的。楼主可以看一下新浪微博的启动页,有欢迎也有广告。&br&这些是我的一些不成熟意见,当然楼主也要考虑自己的收益了,反正作为用户的我是不在乎的
从一个用户的角度,我对启动广告是比较恶心的,尤其是那些画面比较粗糙的广告。我更希望打开一个app之后,可以看到这个app的主题思想,或是比较简约的欢迎页面,这样我的第一印象会好一些,而且会觉得这个app正规一些(原谅我被山寨app咬怕了)。比如这样的…
这个涉及到人脸识别,先通过人脸识别获取脸部信息,比如你说加墨镜,就需要获取瞳孔的位置、大小等,然后去从素材库里面取出对应的墨镜素材来拼接上
这个涉及到人脸识别,先通过人脸识别获取脸部信息,比如你说加墨镜,就需要获取瞳孔的位置、大小等,然后去从素材库里面取出对应的墨镜素材来拼接上
小红牛硬件鸟枪换炮,成绩必须提升
小红牛硬件鸟枪换炮,成绩必须提升
这个问题的提问者,自己去用用不就知道了,这两个区别很大啊!完全就是两个东西,哪有谁替代谁之说
这个问题的提问者,自己去用用不就知道了,这两个区别很大啊!完全就是两个东西,哪有谁替代谁之说
有个库叫什么cupimage,好像写错了,大概
有个库叫什么cupimage,好像写错了,大概
把答案贴出来啊
把答案贴出来啊
系统的block不清楚,来说说AFN。&br&AFN(我看的2.6.3版本)框架中,你传入的block是被AFURLSessionManagerTaskDelegate对象引用。&br&而AFURLSessionManagerTaskDelegate被mutableTaskDelegatesKeyedByTaskIdentifier字典引用,&br&AFN在block执行完后,mutableTaskDelegatesKeyedByTaskIdentifier字典会移除AFURLSessionManagerTaskDelegate对象,这样block也被释放。&br&&br&基本是这个原因,具体的细节自己看AFN源代码去。
系统的block不清楚,来说说AFN。AFN(我看的2.6.3版本)框架中,你传入的block是被AFURLSessionManagerTaskDelegate对象引用。而AFURLSessionManagerTaskDelegate被mutableTaskDelegatesKeyedByTaskIdentifier字典引用,AFN在block执行完后,mutableTaskDel…
读经纬度,在map上组个多边形就形了。
读经纬度,在map上组个多边形就形了。
安卓也是这样。非常反感这功能。已经N次误触退出。&br&&img src=&/f4b80ef55fa0a3d_b.png& data-rawwidth=&984& data-rawheight=&1749& class=&origin_image zh-lightbox-thumb& width=&984& data-original=&/f4b80ef55fa0a3d_r.png&&
安卓也是这样。非常反感这功能。已经N次误触退出。
这是种理念,手持设备的阶段性局限,这样设计肯定有它的取舍。
这是种理念,手持设备的阶段性局限,这样设计肯定有它的取舍。
用极坐标系确定三个点的位置,在 context 添加这三个点然后 fill,度数变化后重绘一次
用极坐标系确定三个点的位置,在 context 添加这三个点然后 fill,度数变化后重绘一次
这是个数学问题,简单来说就是画线,其中线的起点和终点是计算出来的&br&&br&假设中心点是原点(0,0),边长固定是50像素,你可以轻易的得出一条边,利用数学公式算出另外一个边的终点,然后drawline即可
这是个数学问题,简单来说就是画线,其中线的起点和终点是计算出来的假设中心点是原点(0,0),边长固定是50像素,你可以轻易的得出一条边,利用数学公式算出另外一个边的终点,然后drawline即可
占个坑,这种问题发论坛比较好,不可能专门给你提个代码
占个坑,这种问题发论坛比较好,不可能专门给你提个代码
很想推荐一款名叫ProtoPie的交互软件。无代码,支持多触点,安卓苹果都适用,可在Mac或Windows上操作。可惜还没上线。。&br&可以看一下介绍, 地址这里:
&a href=&///?target=http%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& 上面有用ProtoPie做的原型范例。
很想推荐一款名叫ProtoPie的交互软件。无代码,支持多触点,安卓苹果都适用,可在Mac或Windows上操作。可惜还没上线。。可以看一下介绍, 地址这里:
上面有用ProtoPie做的原型范例。
已有帐号?
无法登录?
社交帐号登录提供主流cms教程
提供数据库教程和设计
提供各种常见网页js代码
提供常用的JS特效代码及在线演示
提供jQuery插件教程及插件下载
提供服务器常见问题及教程
提供站长技术、站长资讯等内容
提供常用开发手册和开发工具
您现在的位置:& >
html5实现ios长按图标后进入图标排序及删除功能的效果
导读:我们知道在ios(国产定制安卓系统基本都有)设备上按下图标,图标就会不停的抖动,并且可以随心拖动排序和删除。那么问题来了,我们怎么通...
我们知道在ios(国产定制安卓系统基本都有)设备上按下图标,图标就会不停的抖动,并且可以随心拖动排序和删除。
那么问题来了,我们怎么通过html5来实现呢?
1.首先要保证移动端支持tap,longtap,touch,drag等事件,因此引入了mui.js,当然根据项目需求,可以选择zepto.js等前端框架;
2.图标不停抖动的效果需要用到CSS3的animation,transfrom
&&&&&&&&&&&&&&&&-webkit-transform-origin:&center&center;&
&&&&&&&&&&&&&&&&-webkit-animation-name:&shake-&
&&&&&&&&&&&&&&&&-webkit-animation-duration:&0.5s;&
&&&&&&&&&&&&&&&&-webkit-animation-timing-function:&&
&&&&&&&&&&&&&&&&-webkit-animation-iteration-count:&&
&&&&&&&&&&&&}&
@-webkit-keyframes&shake-rotate&{&
&&&&&&&&&&&&&&&&0%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(0deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&12.5%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(1.25deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&25%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(2.5deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&37.5%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(1.25deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&50%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(0deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&62.5%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(-1.25deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&75%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(-2.5deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&87.5%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(-1.25deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&100%&{&
&&&&&&&&&&&&&&&&&&&&-webkit-transform:&rotate(0deg);&
&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&}&
3.最关键的一点,排序和删除的功能,使用sortable.js来实现,不过最新的版本还是有些小瑕疵,因此我在源码的基础上做了一些修改
具体的瑕疵或bug如下:
1.在移动端如果滑动排序的速度很快,有闪烁效果
2.排序时没有延时,targetEl在dragEl刚drop时就开始移动了
3.targetEl和dragEl间的兄弟结点移动时没有动画,移动时很粗糙
4.dragEl在浮起拖动时,没有缩放效果
var&sort&=&new&Sortable(document.getElementById(&&),&{&
&&&&&&&&&&&&&&&&chosenClass:&'sort-chosen',&
&&&&&&&&&&&&&&&&ghostClass:&'sort-ghost',&
&&&&&&&&&&&&&&&&delay:&150,&
&&&&&&&&&&&&&&&&animation:&400,&
&&&&&&&&&&&&&&&&handle:&'.drag-handle',&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&isDropAnimation:&false,&&
&&&&&&&&&&&&&&&&ghostScale:1.2,&
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&onStart:&function(&&evt)&{&&
&&&&&&&&&&&&&&&&},&
&&&&&&&&&&&&&&&&onEnd:&function(&&evt)&{&&
&&&&&&&&&&&&&&&&&&&&var&itemEl&=&evt.&
&&&&&&&&&&&&&&&&&&&&var&timespan&=&evt.timeStamp&-&&
&&&&&&&&&&&&&&&&&&&&if&(timespan&&&200)&{}&else&if&(itemEl.offsetLeft&==&item_offset.left&&&&itemEl.offsetTop&==&item_offset.top)&{}&else&{&
&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&}&
&&&&&&&&&&&&&&&&&&&&touchtime&=&null;&
&&&&&&&&&&&&&&&&},&
&&&&&&&&&&&&});&
具体代码在这&
小云菜/phillyx/
转载请注明(B5教程网)原文链接:
网友评论:一个iOS图片选择器的DEMO(实现图片添加,宫格排列,图片长按删除,以及图片替换等功能)
一个iOS图片选择器的DEMO(实现图片添加,宫格排列,图片长按删除,以及图片替换等功能)
  在开发中,经常用到选择多张图片进行上传或作其他处理等等,以下DEMO满足了此功能中的大部分功能,可直接使用到项目中。
主要功能如下:
  1,图片九宫格排列(可自动设置)
  2,图片长按抖动(仿苹果软件删除时,图标抖动效果),可进入删除状态,再次单击进入普通状态
  3,图片设置最大上限,加号按钮自动隐藏
  4,已选图片可单击进行重新选择
  5,无需代理,直接调用对应属性就可获取所有图片,并与显示顺序保持一致
  效果图如下:
SZAddImage.h
Created by mac on 14-5-21.
Copyright (c) 2014年 shunzi. All rights reserved.
* 使用说明:直接创建此view添加到你需要放置的位置即可.
* 属性images可以获取到当前选中的所有图片对象.
14 #import &UIKit/UIKit.h&
16 @interface SZAddImage : UIView
存储所有的照片(UIImage)
21 @property (nonatomic, strong) NSMutableArray *
SZAddImage.m
Created by mac on 14-5-21.
Copyright (c) 2014年 shunzi. All rights reserved.
9 #define imageH 100 // 图片高度
10 #define imageW 75 // 图片宽度
11 #define kMaxColumn 3 // 每行显示数量
12 #define MaxImageCount 9 // 最多显示图片个数
13 #define deleImageWH 25 // 删除按钮的宽高
14 #define kAdeleImage @"close.png" // 删除按钮图片
15 #define kAddImage @"add.png" // 添加按钮图片
19 #import "SZAddImage.h"
20 @interface SZAddImage()&UINavigationControllerDelegate, UIImagePickerControllerDelegate&
// 标识被编辑的按钮 -1 为添加新的按钮
NSInteger editT
27 @implementation SZAddImage
29 - (id)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self) {
UIButton *btn = [self createButtonWithImage:kAddImage andSeletor:@selector(addNew:)];
[self addSubview:btn];
39 -(NSMutableArray *)images
if (_images == nil) {
_images = [NSMutableArray array];
47 // 添加新的控件
48 - (void)addNew:(UIButton *)btn
// 标识为添加一个新的图片
if (![self deleClose:btn]) {
editTag = -1;
[self callImagePicker];
60 // 修改旧的控件
61 - (void)changeOld:(UIButton *)btn
// 标识为修改(tag为修改标识)
if (![self deleClose:btn]) {
editTag = btn.
[self callImagePicker];
70 // 删除"删除按钮"
71 - (BOOL)deleClose:(UIButton *)btn
if (btn.subviews.count == 2) {
[[btn.subviews lastObject] removeFromSuperview];
[self stop:btn];
return YES;
return NO;
82 // 调用图片选择器
83 - (void)callImagePicker
UIImagePickerController *pc = [[UIImagePickerController alloc] init];
pc.allowsEditing = YES;
pc.delegate =
[self.window.rootViewController presentViewController:pc animated:YES completion:nil];
92 // 根据图片名称或者图片创建一个新的显示控件
93 - (UIButton *)createButtonWithImage:(id)imageNameOrImage andSeletor : (SEL)selector
UIImage *addImage =
if ([imageNameOrImage isKindOfClass:[NSString class]]) {
addImage = [UIImage imageNamed:imageNameOrImage];
else if([imageNameOrImage isKindOfClass:[UIImage class]])
addImage = imageNameOrI
UIButton *addBtn = [UIButton buttonWithType:UIButtonTypeCustom];
[addBtn setImage:addImage forState:UIControlStateNormal];
[addBtn addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
addBtn.tag = self.subviews.
// 添加长按手势,用作删除.加号按钮不添加
if(addBtn.tag != 0)
UILongPressGestureRecognizer *gester = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
[addBtn addGestureRecognizer:gester];
return addB
119 // 长按添加删除按钮
120 - (void)longPress : (UIGestureRecognizer *)gester
if (gester.state == UIGestureRecognizerStateBegan)
UIButton *btn = (UIButton *)gester.
UIButton *dele = [UIButton buttonWithType:UIButtonTypeCustom];
dele.bounds = CGRectMake(0, 0, deleImageWH, deleImageWH);
[dele setImage:[UIImage imageNamed:kAdeleImage] forState:UIControlStateNormal];
[dele addTarget:self action:@selector(deletePic:) forControlEvents:UIControlEventTouchUpInside];
dele.frame = CGRectMake(btn.frame.size.width - dele.frame.size.width, 0, dele.frame.size.width, dele.frame.size.height);
[btn addSubview:dele];
[self start : btn];
140 // 长按开始抖动
141 - (void)start : (UIButton *)btn {
double angle1 = -5.0 / 180.0 * M_PI;
double angle2 = 5.0 / 180.0 * M_PI;
CAKeyframeAnimation *anim = [CAKeyframeAnimation animation];
anim.keyPath = @"transform.rotation";
anim.values = @[@(angle1),
@(angle2), @(angle1)];
anim.duration = 0.25;
// 动画的重复执行次数
anim.repeatCount = MAXFLOAT;
// 保持动画执行完毕后的状态
anim.removedOnCompletion = NO;
anim.fillMode = kCAFillModeF
[btn.layer addAnimation:anim forKey:@"shake"];
159 // 停止抖动
160 - (void)stop : (UIButton *)btn{
[btn.layer removeAnimationForKey:@"shake"];
164 // 删除图片
165 - (void)deletePic : (UIButton *)btn
[self.images removeObject:[(UIButton *)btn.superview imageForState:UIControlStateNormal]];
[btn.superview removeFromSuperview];
if ([[self.subviews lastObject] isHidden]) {
[[self.subviews lastObject] setHidden:NO];
176 // 对所有子控件进行布局
177 - (void)layoutSubviews
[super layoutSubviews];
int count = self.subviews.
CGFloat btnW = imageW;
CGFloat btnH = imageH;
int maxColumn = kMaxColumn & self.frame.size.width / imageW ? self.frame.size.width / imageW : kMaxC
CGFloat marginX = (self.frame.size.width - maxColumn * btnW) / (count + 1);
CGFloat marginY = marginX;
for (int i = 0; i & i++) {
UIButton *btn = self.subviews[i];
CGFloat btnX = (i % maxColumn) * (marginX + btnW) + marginX;
CGFloat btnY = (i / maxColumn) * (marginY + btnH) + marginY;
btn.frame = CGRectMake(btnX, btnY, btnW, btnH);
195 #pragma mark - UIImagePickerController 代理方法
196 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
UIImage *image = info[UIImagePickerControllerEditedImage];
if (editTag == -1) {
// 创建一个新的控件
UIButton *btn = [self createButtonWithImage:image andSeletor:@selector(changeOld:)];
[self insertSubview:btn atIndex:self.subviews.count - 1];
[self.images addObject:image];
if (self.subviews.count - 1 == MaxImageCount) {
[[self.subviews lastObject] setHidden:YES];
// 根据tag修改需要编辑的控件
UIButton *btn = (UIButton *)[self viewWithTag:editTag];
int index = [self.images indexOfObject:[btn imageForState:UIControlStateNormal]];
[self.images removeObjectAtIndex:index];
[btn setImage:image forState:UIControlStateNormal];
[self.images insertObject:image atIndex:index];
// 退出图片选择控制器
[picker dismissViewControllerAnimated:YES completion:nil];
绿色通道:
(请您对文章做出评价)
上一篇: 下一篇:
阅读(404) 评论(3)
大概都是这么做
但是你用的images的话
是不是传图片就太多限制了
还有一半放在编辑器中 发现实现微薄一样的还是比较复杂的
暗夜血狐嗯,不理解限制是指的哪块?还有放在编辑器中又是指的什么?呵呵,请指点出来,谢谢回复,你是第一个回复的,真心希望得到指导
大顺子限制是因为的用得直接使用的是image的data数据了
这样上传的时候不大方便
好像大部分是用ALAsset
注册用户登录后才能发表评论,请
或 ,网站首页。
最新IT新闻: ·
最新知识库文章: ·
昵称:园龄:粉丝:关注:
2014年12月
日一二三四五六301234567891011121314151617181920212223242526272829303112345678910
(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)
随笔档案(14)
@大顺子限制是因为的用得直接使用的是image的data数据了 这样上传的时候不大方便 好像大部分是用ALAsset...
--暗夜血狐
@暗夜血狐嗯,不理解限制是指的哪块?还有放在编辑器中又是指的什么?呵呵,请指点出来,谢谢回复,你是第一个回复的,真心希望得到指导...
大概都是这么做
但是你用的images的话
是不是传图片就太多限制了
还有一半放在编辑器中 发现实现微薄一样的还是比较复杂的
--暗夜血狐
阅读排行榜
评论排行榜
Copyright ?2014 大顺子
发表评论:
馆藏&18954
TA的最新馆藏

我要回帖

更多关于 文件夹排序自定义 的文章

 

随机推荐