登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

可折叠按钮组,点击按钮后展开菜单

[复制链接]
来自: 剑心缘 分类: iOS精品源码 上传时间: 2016-5-25 13:41:03
Tag:按钮 折叠 动画 菜单 UIButton

项目介绍:

工作之余写的一个Demo,折叠按钮可以自动计算展开方式,可能不太完善,如有问题QQ:2586469773

主要实现方法:
[Objective-C] 查看源文件 复制代码
/**
 *  点击主按钮
 */
- (void)clickBtn:(UIButton *)btn {
    
    btn.selected = !btn.selected;
    
    if (btn.selected) {
        
        self.rect = self.frame;
        if (self.pan) {
            [self removeGestureRecognizer:self.pan];
        }
        
        [UIView animateWithDuration:1.0 delay:0.0 usingSpringWithDamping:self.showWithSpring ?  0.5 : 1.0 initialSpringVelocity:self.showWithSpring ? 10 : 0 options:UIViewAnimationOptionCurveLinear animations:^{
            
            self.alpha = 1.0;
            
            if (self.showSuperViewCenter) {
                
                self.center = self.superview.center;
                CGFloat angle = 2 * M_PI / self.btnsArray.count;
                for (int i = 0; i < self.btnsArray.count; i++) {
                    SZButton *btn = self.btnsArray[i];
                    btn.center = CGPointMake(self.mainBtn.centerX + cos(angle * i) * (self.width + self.disperseDistance), self.mainBtn.centerY + sin(angle * i) * (self.height + self.disperseDistance));
                }
            }
            else {
                
                if (self.showType == showTypeOfLine) {
                    
                    [self lineShowButton];
                }
                else {
                    [self circleShowButton];
                }
            }
        } completion:^(BOOL finished) {
            
            self.coverBtn.size = self.superview.size;
            self.coverBtn.origin = CGPointMake(-self.origin.x, -self.origin.y);
        }];
    }
    else {
        
        if (self.pan) {

            [self addGestureRecognizer:self.pan];
        }
        
        [UIView animateWithDuration:1.0 animations:^{
            
            self.alpha = 0.4;
            self.frame = self.rect;
            self.coverBtn.size = self.size;
            self.coverBtn.center = self.mainBtn.center;

            for (SZButton *btn in self.btnsArray) {
                btn.center = self.mainBtn.center;
            }
        }];
    }
}

相关源码推荐:

我来说两句
*滑动验证:
所有评论(16)
lurich 2016-5-27 09:29:08
不错,楼主威武霸气
回复
hx_huang 2016-5-27 11:10:20
强烈支持楼主ing……
回复
hx_huang 2016-5-27 11:10:41
强烈支持楼主ing……
回复
这名字好难取 2016-5-27 17:02:37
下来看看跟自己想的做法一不一样
回复
doudou-wwcd 2016-5-28 18:38:24
做的很不错 很用心
回复
steer 2016-5-29 08:40:46
霸气威武的按钮弹出效果
回复
燃烧的小强 2016-5-31 21:06:12
6666666666666
回复
LiuJinLong 2016-5-31 21:06:45
楼上说的好
回复
12下一页
2157 4 0
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表