ios开发收藏按钮_iOS开发之弹出式收藏键

iOS开发之弹出式收藏键

2019-1-18 王建伟 iOS开发

项目中可能遇到这样的需求,用户有4个收藏夹,在音乐播放界面,用户点击收藏按键的时候需要弹出4个收藏夹供用户选择,这时候就需要设计一种弹出式的收藏按键了,比如以下这种方式,点击收藏按键后,会从收藏按键下方弹出4个圆形按键以供用户选择

首先我们需要设定一个block块来收集用户点击圆形按键的行为:typedef void(^SPPopViewBlock)(NSInteger tag),这其中的参数tag,标识的是用户点击的那个圆形按键

接下来我们需要定义所需要用到的属性和方法

/*

*点击事件block快*

*/

@property(nonatomic,copy)SPPopViewBlock sppopBlcok;

/*

*按键数组*

*/

@property(nonatomic,strong)NSMutableArray*cells;

/*

*按键中心点*

*/

@property(nonatomic,assign)CGPoint originalCenter;

/*

*初始化*

*/

-(instancetype)initWithTotalNumber:(NSInteger)number center:(CGPoint)point cellClock:(SPPopViewBlock)block;

/*

*弹出cell*

*/

-(void)popCell;

初始化方法,初始化当中我们需要定义收藏夹数量,收藏按键中心点位置,一句将用户按键行为的block块

-(instancetype)initWithTotalNumber:(NSInteger)number center:(CGPoint )point cellClock:(SPPopViewBlock)block{

if(self=[super init]){

self.frame=SPFrame(0, 0, SPScreen_W, SPScreen_H);

self.sppopBlcok = block;

self.originalCenter=point;

self.backgroundColor=[UIColor colorWithWhite:0 alpha:0]; NSArray*array=@[@"find_collection_study",@"find_collection_story",@"find_collection_music",@"find_collection_english"];

self.cells=[NSMutableArray array];

for (int i=0; i

定义完成后,我们需要来编辑4个圆形按键的行为了

-(void)sppopViewButtonEvent:(UIButton*)sender{

self.sppopBlcok(sender.tag);

for (int i=0; i

4个圆形按键从出现到消失需要写一个简单的动画效果来过渡一下

-(void)cellIsPop:(BOOL)isPop withCellTag:(NSInteger)tag cell:(UIButton*)button{

if(isPop){

[UIView animateWithDuration:0.5 animations:^{

CGFloat y=button.center.y-sin(M_PI/4+tag*M_PI/2)*50;

CGFloat x=button.center.x-cos(M_PI/4+tag*M_PI/2)*50;

button.center=SPPoint(x, y);

}];

}

else{

[UIView animateWithDuration:0.5 animations:^{

button.center=self.originalCenter;

} completion:^(BOOL finished) {

[self removeFromSuperview];

}];

}

}

点击收藏按键弹出4个圆形按键方法

-(void)popCell{

for (int i=0; i

点击界面其他位置,将4个圆形按键收缩起来的方法

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

for (int i=0; i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值