Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >demo1 动态显示view或弹框 动态隐藏view或弹框

demo1 动态显示view或弹框 动态隐藏view或弹框

作者头像
用户1219438
发布于 2018-02-01 08:02:06
发布于 2018-02-01 08:02:06
1.1K00
代码可运行
举报
文章被收录于专栏:AliceAlice
运行总次数:0
代码可运行

实现界面如上所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
有一个弹框,弹框上边有一个关闭按钮,点击按钮,可以关闭弹框。点击弹框的周围区域也可以关闭按钮。 点击上边的隐藏弹框也可以关闭按钮。

在实现功能的基础上,以动画的形式展示跟隐藏。

思路:在之前的开发中,我的思路比较局限。想着用一个view来做中间的那一块,那么问题来了,左上角的关闭按钮,就加在view的左上角。效果猛一看是可以实现,但是这个关闭按钮的点击事件,却不怎么好使,因为按钮有一部分超出了view的界限,于是,点击起来就不太好使。

遇见问题,解决问题。于是我就转换了一种思路。当然这思路还是在别人的指点下完成的。

思路如下:

1.首先确实需要一个弹框的view1 view1的大小是整个界面的大小。设置这个view的背景为半透明,透明度可以是0.5 或者是任意0-1之间的数值,具体看你想要的效果。

2.然后需要一个放内容的view2 这个view2里边包含了 上边的img 还有两行文字,都是放在这个view2里边的。

3.最后将关闭按钮 加在view1的上边。这样就大功告成了。 随便点击关闭按钮,丝毫没有任何印象。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
核心代码实现:acercodeview的代码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//

//  ACErCodeView.m

//  demo1二维码点击动态出现

//

//  Created by Alice_ss on 2018/1/3.

//  Copyright © 2018年 AC. All rights reserved.

//

#import "ACErCodeView.h"

#define SCREENW [UIScreen mainScreen].bounds.size.width

#define SCREENH [UIScreen mainScreen].bounds.size.height

@implementation ACErCodeView{

    UIImageView *codeIMG;

    UILabel *nickNameLabel;

    UILabel *sexLabel;

    UIButton *closeBtn;

}

-(instancetype)initWithFrame:(CGRect)frame{

    if (self = [super initWithFrame:frame]) {

        [self createUI];



    }

    return  self;

}

- (void)createUI{

    //1.创建一个view背景设置呈透明的因为这样的话才能将关闭按钮悬浮在上边。

    UIImageView *bgView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 64, SCREENW,SCREENH)];

    UITapGestureRecognizer *tap  = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapClose)];

    bgView.userInteractionEnabled = YES;

    [bgView addGestureRecognizer:tap];

    [self addSubview:bgView];



    //2.放内容的大view

    UIView *contentView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREENW-120,SCREENH-200)];

    contentView.backgroundColor = [UIColor whiteColor];

    [self addSubview:contentView];



    //3.二维码图片

    codeIMG = [[UIImageView alloc]initWithFrame:CGRectMake((CGRectGetWidth(contentView.frame)-100)/2, CGRectGetMinY(contentView.frame), 100, 100)];

    codeIMG.backgroundColor = [UIColor redColor];

    [contentView addSubview:codeIMG];



    //4.昵称

    nickNameLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(codeIMG.frame)+10, CGRectGetWidth(contentView.frame), 44)];

//    nickNameLabel.backgroundColor = [UIColor blueColor];

    nickNameLabel.text = @"我是你们喜欢的Alice";

    nickNameLabel.textAlignment = NSTextAlignmentCenter;

    [contentView addSubview:nickNameLabel];



    //5.sex

    sexLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(nickNameLabel.frame)+10, CGRectGetWidth(contentView.frame), 44)];

//    sexLabel.backgroundColor = [UIColor redColor];

    sexLabel.text= @"我的性别是一个漂亮的小美女哦";

    sexLabel.textAlignment  = NSTextAlignmentCenter;

    [contentView addSubview:sexLabel];







    //给contentview设置高度

    contentView.frame = CGRectMake(SCREENW/2-(SCREENW-120)/2, (SCREENH-(CGRectGetMaxY(sexLabel.frame)+10))/2, SCREENW-120, CGRectGetMaxY(sexLabel.frame)+10);



    //6.关闭按钮

    closeBtn = [[UIButton alloc]initWithFrame:CGRectMake(CGRectGetMinX(contentView.frame)-10, CGRectGetMinY(contentView.frame)-10, 30, 30)

                ];

    [closeBtn setBackgroundImage:[UIImage imageNamed:@"icon_shouye_GuanBi.png"] forState:0];



    [closeBtn addTarget:self action:@selector(closeBtnClicked:) forControlEvents:UIControlEventTouchUpInside];

    [self addSubview:closeBtn];



}

//关闭页面

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

    [UIView animateWithDuration:0.3 animations:^{

        self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.3, 0.3);

    } completion:^(BOOL finished) {

        [UIView animateWithDuration:0.2 animations:^{

            self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0, 0);

        }];



        self.hidden = YES;

        self.blockCloseClicked(self.hidden);

    }];





}

//点击背景隐藏界面

- (void)tapClose{

    [UIView animateWithDuration:0.3 animations:^{

        self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.3, 0.3);

    } completion:^(BOOL finished) {

        [UIView animateWithDuration:0.2 animations:^{

            self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0, 0);

        }];



        self.hidden = YES;

        self.blockCloseClicked(self.hidden);

    }];

}

@end

//viewcontroller的书写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//

//  Created by Alice_ss on 2018/1/3.

//  Copyright © 2018年 AC. All rights reserved.

//

#import "ViewController.h"

#import "ACErCodeView.h"

#define SCREENW [UIScreen mainScreen].bounds.size.width

#define SCREENH [UIScreen mainScreen].bounds.size.height

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIBarButtonItem *navRBarItem;

@property(nonatomic,strong)ACErCodeView *erCodeIMG;

@end

@implementation ViewController

- (IBAction)naviRBarClicked:(UIBarButtonItem *)sender {

    NSLog(@"RIGHT BAR ITEM CLICKED");



    if(_erCodeIMG.hidden){

        _erCodeIMG.hidden = NO;

        sender.title = @"点击隐藏";

        _erCodeIMG.transform = CGAffineTransformScale(CGAffineTransformIdentity, CGFLOAT_MIN, CGFLOAT_MIN);



        [UIView animateWithDuration:0.3 animations:^{

            self.erCodeIMG.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0);

        } completion:^(BOOL finished) {

            [UIView animateWithDuration:0.2 animations:^{

                _erCodeIMG.transform = CGAffineTransformIdentity;

            }];

        }];

    }else{

        sender.title = @"点击显示";



        [UIView animateWithDuration:0.3 animations:^{

            self.erCodeIMG.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.3, 0.3);

        } completion:^(BOOL finished) {

            [UIView animateWithDuration:0.2 animations:^{

                _erCodeIMG.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0, 0);

            }];



            _erCodeIMG.hidden = YES;

        }];





    }





}

- (void)viewDidLoad {

    [super viewDidLoad];

    self.view.backgroundColor = [UIColor yellowColor];



    // Do any additional setup after loading the view, typically from a nib.

    _erCodeIMG = [[ACErCodeView alloc]initWithFrame:CGRectMake(0, 0,SCREENW , SCREENH)];

    _erCodeIMG.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];

    _erCodeIMG.hidden = YES;



    __weak typeof(self) weakSelf = self;

    _erCodeIMG.blockCloseClicked = ^(BOOL ishidden) {

        if (ishidden) {

            self.navRBarItem.title = @"点击显示";

        }else{

            self.navRBarItem.title = @"点击隐藏";

        }

    };



    [self.view addSubview:_erCodeIMG];





}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

@end


以上就是全部代码。

希望新的一年,自己工作越来越踏实。同时也要学会拒绝,学会给与。

如有任何问题。请联系我的邮箱 673658917@qq.com .

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
demo2动态加载显示商品详情页
/* 要求:实现 头像+昵称(多余7位用...)           商品图片(根据商品实际的图片的大小进行动态的展示。按照一定的比例进行展示。)           产品简介。产品简介在商品图片的下边。并跟随商品图片的大小进行动态的收缩或者是展示。 考虑:实现功能之后,是否要做占位图 进行图片的占位??! */ 难点:动态的加载。 实现:首先创建ui 然后请求数据 最后在主线程进行赋值 并且刷新ui 即可实现。 // // ACShowDetailVC.m // demo2详情动态加载展开
用户1219438
2018/02/01
7880
demo2动态加载显示商品详情页
它们的定义UIAlertView
code4App有很多伟大的上方UI特效代码,,好牛逼啊,这效果,太炫了,哇,怎么自己写不出来.事实上,再炫的特效,都是依据苹果系统的框架而来,假设我们了解系统框架实现的原理,也就能写出属于自己自己定义的控件,加上各种各样的动画.
全栈程序员站长
2022/07/06
9380
它们的定义UIAlertView
实践-小效果 V
关键效果设置:在改变tableHeaderView的高度后,再手动调用下 Tb 的 setTableHeaderView方法。
進无尽
2018/09/12
1.1K0
实践-小效果 V
iOS点击TableView的cell显示弹出动画
最近使用豌豆荚一览的app时看到它的点击cell后弹出界面的动画很帅,所以自己琢磨着实现了一个,效果如下:
Cloudox
2022/05/13
1.5K0
iOS点击TableView的cell显示弹出动画
iOS动画小知识:定点缩放弹窗(利用锚点anchorPoint进行实现)包含完整demo
每一个UIView内部都默认关联着一个CALayer, UIView有frame、bounds和center三个属性,CALayer也有类似的属性,分别为frame、bounds、position、anchorPoint。
公众号iOS逆向
2022/08/22
2.1K0
iOS动画小知识:定点缩放弹窗(利用锚点anchorPoint进行实现)包含完整demo
iOS百度地图开发之路径规划
路线规划 示例程序 使用百度地图SDK版本为2.9.1。 需要将改 代码: #import <MapKit/MapKit.h> #import <BaiduMapAPI_Map/BMKMapView.h> #import <BaiduMapAPI_Location/BMKLocationService.h> #import <BaiduMapAPI_Search/BMKSearchComponent.h> #import <BaiduMapAPI_Map/BMKPolylineView.h> #impor
hrscy
2018/08/30
1.3K0
iOS百度地图开发之路径规划
实践-小效果 Ⅳ
设置一个UIImageView为倒立的同等控件,设置这个UIImageView的layer的mask为一个渐变图层,效果就出来了。
進无尽
2018/09/12
6770
实践-小效果 Ⅳ
【iOS】今日头条的转场动画设置+手势控制
最近公司有个需求,做一个今日头条的用户动态的进入和退出的动画效果,并且退场时,可以自己点击退出,也可以手势下滑退出。头条的效果如下:
MapleYe
2020/03/31
1.9K0
【iOS】今日头条的转场动画设置+手势控制
ios textView跟随键盘的移动
实现效果: textview 能够跟随键盘的移动而移动 效果图如下: 下边贴上主要的代码: 1.创建textview @interface ViewController ()<UITextViewDe
用户1219438
2018/02/01
1.8K0
ios textView跟随键盘的移动
iOS点击查看大图的动画效果
对于图片来说,除了表情包,几乎都会被点击查看大图。今天就讲解一个查看和收起大图的动画效果,先直接看效果图:
Cloudox
2021/11/23
1.7K0
iOS点击查看大图的动画效果
iOS 一款轻量级的AlertView
系统有AlertController,如果设计师要求不高能满足需求了,但是如果设计师要单独设计一个对话框,在用AlertController就显得有点吃力了,自定义一款吧,GitHub上有很多优秀的开源,杀鸡焉用牛刀,那些大神封装的代码量太多了,出现了个bug自己改要看很久,太多时间浪费在这上面没有必要。还是自己定义一个。
赵哥窟
2019/02/25
7050
iOS 一款轻量级的AlertView
类似3D效果_CGAffineTransformScale
1️⃣CGAffineTransformMakeTranslation (相对平移)假设是一个视图,那么它的起始位置 x 会加上tx , y 会加上 ty 2️⃣CGAffineTransform
Dwyane
2018/05/22
1.2K0
iOS开发-RAC+MVVM练手项目 图床App写在前面准备工作界面设计首页历史关于后记
前段时间闲着无聊和盆友就搞了个图床站Chevereto-Free,忽然发现居然有API提供,而且很简单,只需要一个KEY就可以
gwk_iOS
2018/08/23
1K0
iOS开发-RAC+MVVM练手项目 图床App写在前面准备工作界面设计首页历史关于后记
iOS CALayer 简单介绍
总结:能看到的都是uiview,uiview能显示在屏幕上是因为它内部的一个层calyer层。
用户1219438
2018/08/06
6860
iOS CALayer 简单介绍
《Motion Design for iOS》(十七)
是时候写一些代码了。让我们先添加一个简单的UIView对象到屏幕上并设置它的圆角。我们要把它添加到我们的主窗口上时因为它是一个快速的例子,但在真实的app界面中你需要添加到管理当前界面的视图控制器中。
Cloudox
2021/11/23
1K0
《Motion Design for iOS》(十七)
iOS 支付宝首页拖放按钮效果实现
将所有按钮放在viewcontroller的_buttonArray集合中,同时赋值给按钮中
大师级码师
2021/10/29
5270
仿window阿里旺旺登陆界面,打印机吐纸动画效果---转自Bison的技术博客
偶然的机会发现window的阿里旺旺的登陆效果蛮有意思的,于是就模仿着做了一下打印机吐纸的动画效果 看起来很神奇的东西,实现起来却不难,下面我给大家看下主要的源码。 - (void)createUI{ UIImageView *backimageView=[[UIImageView alloc]init]; backimageView.image =[UIImage imageNamed:@"1.png"]; backimageView.frame = CGRectMake(50
Bison
2018/07/06
4700
iOS利用锚点实现定点缩放弹窗
demo下载地址:https://download.csdn.net/download/u011018979/16092830
公众号iOS逆向
2021/07/29
1.7K0
UI篇-关于单个页面屏幕旋转要注意的问题
有时候,我们会需要在整个项目中,使某一个ViewController支持屏幕旋转,而其他的ViewController并不能自动旋转。这是一个很常见的需求,下面就屏幕旋转相关问题做个小结。
進无尽
2018/09/12
3.6K0
UI篇-关于单个页面屏幕旋转要注意的问题
绘制图形的视图方式为_三角函数图象的平移变换
A view (an object whose class is UIView or a subclass of UIView) knows how to draw itself into a rectangular area of the interface.
全栈程序员站长
2022/08/04
6190
绘制图形的视图方式为_三角函数图象的平移变换
推荐阅读
相关推荐
demo2动态加载显示商品详情页
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验