iOS弹出一个View(自定义的提示框)

来源:互联网 发布:java 编码格式 编辑:程序博客网 时间:2024/05/16 23:34

之前要写一个iPad的一个项目,里面有一个分享的按钮,弹出一个View,上面几个图片按钮,菜菜的我为了这个小功能花费了很多时间,最后弄明白了,发现之前的思路都想错了,要实现弹出一个View,其实就是先创建两个View(一个遮罩,一个装显示的内容)在点击按钮的时候把这两个View添加到self.view上面先添加遮罩的View,再添加内容的View,不要忘了代码的执行顺序,两个view是分开添加的,不要把内容view添加到遮罩view上面一次添加,点击遮罩view的时候就应该把这两个View remove掉,(2016-11-15新增内容:几个月的成长我深知我写的这个博客技术含量很低,但是相比还是能够帮很多初学者的,为了更好的提升自定义提示框显示出现退出效果,我加了一个View类的block方法,使用它可以实现较为简单的一些动画~代码在最下面):


首先创建两个view:

@property (nonatomic,strong) UIView * maskTheView;@property (nonatomic,strong) UIView * shareView;

然后写好GET方法;遮罩view的点击手势点击的时候走一个方法,remo的代码放在里面

- (UIView *)maskTheView{    if (!_maskTheView) {        _maskTheView = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];        _maskTheView.backgroundColor = [UIColor colorWithRed:0/255.f green:0/255.f blue:0/255.f alpha:0.5];        //添加一个点击手势        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(maskClickGesture)];        [_maskTheView addGestureRecognizer:tap];//让header去检测点击手势    }    return _maskTheView;}- (UIView *)shareView{    if (!_shareView) {        _shareView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 160)];        _shareView.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);        _shareView.backgroundColor = [UIColor whiteColor];    }    return _shareView;}

然后在按钮的点击事件里面添加这两个view

    [self.view addSubview:self.maskTheView];    [self.view addSubview:self.shareView];

点击手势的点击事件

- (void)maskClickGesture{    [self.maskTheView removeFromSuperview];    [self.shareView removeFromSuperview];}

以上就是实现代码部分,我想这个应该能帮助一些和我一样的初入iOS的朋友们,这个方法可以实现很多样式的弹出效果

新增view的block方法实现简单动画的view - block:

声明的那个提示框,在一开始设置好了他的大小位置以后,可以通过某个按钮的点击事件里面写上下面的代码,在下面的blcok代码块里面你可以再次将那个提示框的大小位置重新定制,比如原先我这个视图100*100的宽高,位置处于屏幕外面,我可以让它在点某个按钮时盖面状态为大小200*200宽高,位置为X 200,Y 200的位置显示,旧位置和新位置变化的时长为0.25秒:

UIView * view1 = [[UIView alloc]initWithFrame:CGRectMake(-100, 100, 100, 100)];
[UIView animateWithDuration:0.25 animations:^{//0.25是指动画时长,视自身情况而定        CGRect rect = CGRectMake(200, 200, 200, 200);    //新的位置及大小        view1.frame = rect;         //把新的frame赋值给view1就可以了,这个blcok就会在你上面设置的时间里完成这个view的状态位置的改变    }];

除了改变位置其实还可以在里面让它淡出淡入等动画,这些需要你们自己去拓展咯!




2 0
原创粉丝点击