demo1 動(dòng)態(tài)顯示view或彈框 動(dòng)態(tài)隱藏view或彈框

實(shí)現(xiàn)界面如上所示:

有一個(gè)彈框劲绪,彈框上邊有一個(gè)關(guān)閉按鈕,點(diǎn)擊按鈕卡者,可以關(guān)閉彈框蒿囤。點(diǎn)擊彈框的周圍區(qū)域也可以關(guān)閉按鈕。 點(diǎn)擊上邊的隱藏彈框也可以關(guān)閉按鈕崇决。

在實(shí)現(xiàn)功能的基礎(chǔ)上材诽,以動(dòng)畫的形式展示跟隱藏。

思路:在之前的開發(fā)中恒傻,我的思路比較局限脸侥。想著用一個(gè)view來做中間的那一塊,那么問題來了盈厘,左上角的關(guān)閉按鈕睁枕,就加在view的左上角。效果猛一看是可以實(shí)現(xiàn),但是這個(gè)關(guān)閉按鈕的點(diǎn)擊事件外遇,卻不怎么好使拒逮,因?yàn)榘粹o有一部分超出了view的界限,于是臀规,點(diǎn)擊起來就不太好使滩援。

遇見問題,解決問題塔嬉。于是我就轉(zhuǎn)換了一種思路玩徊。當(dāng)然這思路還是在別人的指點(diǎn)下完成的。

思路如下:

1.首先確實(shí)需要一個(gè)彈框的view1 view1的大小是整個(gè)界面的大小谨究。設(shè)置這個(gè)view的背景為半透明恩袱,透明度可以是0.5 或者是任意0-1之間的數(shù)值,具體看你想要的效果胶哲。

2.然后需要一個(gè)放內(nèi)容的view2 這個(gè)view2里邊包含了 上邊的img 還有兩行文字畔塔,都是放在這個(gè)view2里邊的。

3.最后將關(guān)閉按鈕 加在view1的上邊鸯屿。這樣就大功告成了澈吨。 隨便點(diǎn)擊關(guān)閉按鈕,絲毫沒有任何印象寄摆。

核心代碼實(shí)現(xiàn):

//

//? ACErCodeView.m

//? demo1二維碼點(diǎn)擊動(dòng)態(tài)出現(xiàn)

//

//? 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.創(chuàng)建一個(gè)view背景設(shè)置呈透明的因?yàn)檫@樣的話才能將關(guān)閉按鈕懸浮在上邊谅辣。

? ? 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.放內(nèi)容的大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= @"我的性別是一個(gè)漂亮的小美女哦";

? ? sexLabel.textAlignment? = NSTextAlignmentCenter;

? ? [contentView addSubview:sexLabel];




? ? //給contentview設(shè)置高度

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


? ? //6.關(guān)閉按鈕

? ? 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];


}

//關(guān)閉頁面

- (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);

? ? }];



}

//點(diǎn)擊背景隱藏界面

- (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.m

//? demo1二維碼點(diǎn)擊動(dòng)態(tài)出現(xiàn)

//

//? 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 = @"點(diǎn)擊隱藏";

? ? ? ? _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 = @"點(diǎn)擊顯示";


? ? ? ? [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 = @"點(diǎn)擊顯示";

? ? ? ? }else{

? ? ? ? ? ? self.navRBarItem.title = @"點(diǎn)擊隱藏";

? ? ? ? }

? ? };


? ? [self.view addSubview:_erCodeIMG];



}

- (void)didReceiveMemoryWarning {

? ? [super didReceiveMemoryWarning];

? ? // Dispose of any resources that can be recreated.

}

@end


以上就是全部代碼。

希望新的一年婶恼,自己工作越來越踏實(shí)桑阶。同時(shí)也要學(xué)會(huì)拒絕,學(xué)會(huì)給與勾邦。

如有任何問題蚣录。請聯(lián)系我的郵箱 673658917@qq.com .

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市眷篇,隨后出現(xiàn)的幾起案子萎河,更是在濱河造成了極大的恐慌,老刑警劉巖铅歼,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件公壤,死亡現(xiàn)場離奇詭異,居然都是意外死亡椎椰,警方通過查閱死者的電腦和手機(jī)厦幅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慨飘,“玉大人确憨,你說我怎么就攤上這事译荞。” “怎么了休弃?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵吞歼,是天一觀的道長。 經(jīng)常有香客問我塔猾,道長篙骡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任丈甸,我火速辦了婚禮糯俗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘睦擂。我一直安慰自己得湘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布顿仇。 她就那樣靜靜地躺著淘正,像睡著了一般。 火紅的嫁衣襯著肌膚如雪臼闻。 梳的紋絲不亂的頭發(fā)上鸿吆,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機(jī)與錄音些阅,去河邊找鬼伞剑。 笑死斑唬,一個(gè)胖子當(dāng)著我的面吹牛市埋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恕刘,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼缤谎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了褐着?” 一聲冷哼從身側(cè)響起坷澡,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎含蓉,沒想到半個(gè)月后频敛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡馅扣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年斟赚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片差油。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拗军,死狀恐怖任洞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情发侵,我是刑警寧澤交掏,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站刃鳄,受9級特大地震影響盅弛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜叔锐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一熊尉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掌腰,春花似錦狰住、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至勺择,卻和暖如春创南,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背省核。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工稿辙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人气忠。 一個(gè)月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓邻储,卻偏偏與公主長得像,于是被迫代替她去往敵國和親旧噪。 傳聞我的和親對象是個(gè)殘疾皇子吨娜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容