ios懸浮按鈕的實現


我在網上找了很久沒有找到一個懸浮按鈕,所以才決定自己做一個,效果還不錯。

github 下載demo:https://github.com/MartinLi841538513/MartinDemos (一切以demo為准)

 

集成大法:

一,首先引入MLFloatButton.h .m .xib 文件(在demo含)

二,在controller中集成成MLFloatButton

引入#import "MLFloatButton.h"
實現MLFloatButtonDelegate協議以及他的方法buttonTouchAction
然后通過loadFromNibWithFrame初始化floatButton(這里一定要在viewWillAppear實現,否則,popBack將會看不到效果)
prepareForSegue是跳轉到另外一個界面也要能夠顯示該floatButton(通常我們需要這么做),此時我們需要重新設置代理和父視圖。並在下一個controller的viewWillAppear實現addSubview,以及協議方法。
#import "FloatButtonViewController.h"
#import "MLFloatButton.h"
#import "SecondViewController.h"
@interface FloatButtonViewController ()<MLFloatButtonDelegate>
{
    MLFloatButton *floatButton;
}
@end
@implementation FloatButtonViewController

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    floatButton = [MLFloatButton loadFromNibWithFrame:CGRectMake(100, 100, 32, 32) addTarget:self InSuperView:self.view];//這里一定要在viewWillAppear實現,否則,popBack將會看不到效果
}

#pragma mark - Navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"FloatButtonPush"]) {
        SecondViewController *target = segue.destinationViewController;
        target.floatButton = floatButton;
        target.floatButton.floatButtonDelegate = (id)target; //重新設置代理controller
    }
}

#pragma MLFloatButtonDelegate
-(void)buttonTouchAction{
    NSLog(@"button action");
}
@end

 

在SecondViewController.h

#import "MLFloatButton.h"
@interface SecondViewController : UIViewController
@property(nonatomic,strong)MLFloatButton *floatButton;
@end

 

在SecondViewController.m

#import "SecondViewController.h"

@interface SecondViewController ()<MLFloatButtonDelegate>
@end
@implementation SecondViewController

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.floatButton showInFatherView:self.view];
}

#pragma MLFloatButtonDelegate
-(void)buttonTouchAction{
    NSLog(@"SecondViewController floatButton touched");
}
@end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM