iOS Process动画iOS Tips

拖拽信息栏插入列表(带动画)

2015-09-29  本文已影响303人  ChrisPzzz

时间管理类的应用中插入编辑的效果

惯例先上gif如下

yeliangchen.gif

思路

1.拖拽视图效果的实现######
2.列表中的cell隔开效果实现########
判断视图移动位置并在视图对应的cell的位置下插入一个新的cell,并删除上一个用来隔开空间的cell########

Begin

工具:Xcode 7.0 模拟器 9.0

屏幕快照 2015-09-29 下午12.44.45.png

命名注意与CustomView.h名字相同


屏幕快照 2015-09-29 下午12.45.02.png

选中CustomView.xib 将class 更改为 CustomView

屏幕快照 2015-09-29 下午12.57.56.png

将CutomView.xib 的 Size 改成Freeform,设置这个之后就可以自由改变大小了。

屏幕快照 2015-09-29 下午12.56.26.png

设置宽高

屏幕快照 2015-09-29 下午1.02.30.png

布局xib 如下 拉好中间的label的约束 四个约束 label的宽固定 高固定
水平中心对齐 竖直中心对齐


屏幕快照 2015-09-29 下午1.05.07.png 屏幕快照 2015-09-29 下午3.13.15.png 屏幕快照 2015-09-29 下午3.15.18.png 屏幕快照 2015-09-29 下午3.16.57.png 屏幕快照 2015-09-29 下午3.26.38.png 屏幕快照 2015-09-29 下午3.28.03.png 屏幕快照 2015-09-29 下午3.29.52.png 屏幕快照 2015-09-29 下午3.31.56.png

<pre>- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
CGPoint viewPositon = _liangchen.center;
CGRect rect = [self.tableView rectForRowAtIndexPath:_endIndex];
CGPoint newPositon = [_liangchen.superview convertPoint:viewPositon toView:_tableView];
[self calculateHeight];

if (viewPositon.y > (_tableView.center.y - _tableView.bounds.size.height / 2) && viewPositon.y < _height ) {
    _liangchen.center = newPositon;
    [_tableView addSubview:_liangchen];
    
    [UIView animateWithDuration:0.40f animations:^{
        [_liangchen setFrame:CGRectMake(rect.origin.x, rect.origin.y, [UIScreen mainScreen].bounds.size.width, _liangchen.frame.size.height)];
        _liangchen.transform = CGAffineTransformIdentity;
    } completion:^(BOOL finished) {
        NSLog(@"请记住我叫 叶良辰");
    }];
}

}</pre>

代码测试xx.gif
上一篇 下一篇

猜你喜欢

热点阅读