iOS弹出底部视图简单实现

时间:2023-01-13 11:25:25

- 项目基本目录

iOS弹出底部视图简单实现

其中xib文件用来自定义需要弹出的视图。

在主控制器里设置popview的frame等信息代码如下:

底部视图(popview)初始化放在父类视图的最顶部或者说是整个屏幕的最底部,宽高自定义

- (void)viewDidLoad {
[super viewDidLoad];
_popview = [[popview alloc]init];
_popview.frame = CGRectMake(, self.view.frame.size.height, , );
[self.view addSubview:_popview];
}

当点击相应按钮的时候让底部视图往上移

- (IBAction)pop:(id)sender {

   [ UIView animateWithDuration:0.3 animations:^{
CGAffineTransform tf = CGAffineTransformMakeTranslation(, -_popview.frame.size.height);
[_popview setTransform:tf];
}];
}

popview视图中的代码如下:

@interface popview ()

@property (weak, nonatomic) IBOutlet UIView *bkview;

@end

@implementation popview

- (instancetype)init{
//从xib中初始化视图
if (self = [super init]) {
NSArray *binview = [[NSBundle mainBundle] loadNibNamed:@"popview" owner:nil options:nil];
self = [binview lastObject];
}
return self;
}
//点击取消按钮的时候移除并且让弹出视图的背景视图隐藏,等到底部视图彻底移到底部的时候在设置显示背景视图(背景视图主要用来模糊效果)
- (IBAction)cancel:(id)sender {
[_bkview setHidden:YES]; [UIView animateWithDuration:0.3 animations:^{
self.transform = CGAffineTransformIdentity; } completion:^(BOOL finished) {
[_bkview setHidden:NO];
}];
}