激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - iOS自定義alertView提示框實例分享

iOS自定義alertView提示框實例分享

2021-01-17 17:25菜鳥Alex IOS

這是一款可以隨意改變彈框背景色,按鈕背景色,提示消息字體顏色的iOS alertView提示框,想要用于這樣一款alertView提示框的朋友不要錯過

本文實例為大家分享ios自定義alertview提示框,先上圖,彈框的背景色,按鈕背景色,提示的消息的字體顏色都可以改變

iOS自定義alertView提示框實例分享

利用單例實現豐富的自定義接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//
// pbalertcontroller.h
// pbalertdemo
//
// created by 裴波波 on 16/4/20.
// copyright © 2016年 裴波波. all rights reserved.
//
 
#import <uikit/uikit.h>
 
 
typedef void(^pbblock)();
 
@interface pbalertcontroller : uiviewcontroller
 
 
/** 設置alertview背景色 */
@property (nonatomic, copy) uicolor *alertbackgroundcolor;
/** 設置確定按鈕背景色 */
@property (nonatomic, copy) uicolor *btnconfirmbackgroundcolor;
/** 設置取消按鈕背景色 */
@property (nonatomic, copy) uicolor *btncancelbackgroundcolor;
/** 設置message字體顏色 */
@property (nonatomic, copy) uicolor *messagecolor;
 
/** 創建單例 */
+(instancetype)sharealertcontroller;
/** 彈出alertview以及點擊確定回調的block */
-(void)alertviewcontrollerwithmessage:(nsstring *)message andblock:(pbblock) block;
 
@end

.m文件中初始化控件以及對alertview的控件的屬性進行懶加載,確定初始的顏色.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
//
// pbalertcontroller.m
// pbalertdemo
//
// created by 裴波波 on 16/4/20.
// copyright © 2016年 裴波波. all rights reserved.
//
 
#import "pbalertcontroller.h"
 
/** 屏幕尺寸 */
#define kmainscreenbounds [uiscreen mainscreen].bounds
 
@interface pbalertcontroller ()
 
/** 蒙版 */
@property (nonatomic, strong) uiview *coverview;
/** 彈框 */
@property (nonatomic, strong) uiview *alertview;
/** 點擊確定回調的block */
@property (nonatomic, copy) pbblock block;
 
@end
 
@implementation pbalertcontroller
 
- (void)viewdidload {
 
 [super viewdidload];
 self.view.backgroundcolor = [uicolor whitecolor];
}
 
-(void)alertviewcontrollerwithmessage:(nsstring *)message andblock:(pbblock) block{
 
 self.block = block;
 //創建蒙版
 uiview * coverview = [[uiview alloc] initwithframe:kmainscreenbounds];
 self.coverview = coverview;
 [self.view addsubview:coverview];
 coverview.backgroundcolor = [uicolor blackcolor];
 coverview.alpha = 0.7;
 
 //創建提示框view
 uiview * alertview = [[uiview alloc] init];
 alertview.backgroundcolor = self.alertbackgroundcolor;
 //設置圓角半徑
 alertview.layer.cornerradius = 6.0;
 self.alertview = alertview;
 [self.view addsubview:alertview];
 alertview.center = coverview.center;
 alertview.bounds = cgrectmake(0, 0, kmainscreenbounds.size.width * 0.75, kmainscreenbounds.size.width * 0.75 * 1.5/ 3);
 
 //創建操作提示 label
 uilabel * label = [[uilabel alloc] init];
 [alertview addsubview:label];
 label.text = @"操作提示";
 label.font = [uifont systemfontofsize:19];
 label.textalignment = nstextalignmentcenter;
 cgfloat lblwidth = alertview.bounds.size.width;
 cgfloat lblhigth = 22;
 label.frame = cgrectmake(0, 0, lblwidth, lblhigth);
 
 //創建中間灰色分割線
 uiview * separateline = [[uiview alloc] init];
 separateline.backgroundcolor = [uicolor graycolor];
 [alertview addsubview:separateline];
 separateline.frame = cgrectmake(0, lblhigth + 1, alertview.bounds.size.width, 1);
 
 //創建message label
 uilabel * lblmessage = [[uilabel alloc] init];
 lblmessage.textcolor = self.messagecolor;
 [alertview addsubview:lblmessage];
 lblmessage.text = message;
 lblmessage.textalignment = nstextalignmentcenter;
 lblmessage.numberoflines = 2; //最多顯示兩行message
 cgfloat margin = 5;
 cgfloat msgx = margin;
 cgfloat msgy = lblhigth + 3;
 cgfloat msgw = alertview.bounds.size.width - 2 * margin;
 cgfloat msgh = 44;
 lblmessage.frame = cgrectmake(msgx, msgy, msgw, msgh);
 
 //創建確定 取消按鈕
 cgfloat buttonwidth = (alertview.bounds.size.width - 4 * margin) * 0.5;
 cgfloat buttonhigth = 25;
 uibutton * btncancel = [[uibutton alloc] init];
 [alertview addsubview:btncancel];
 [btncancel settitlecolor:[uicolor whitecolor] forstate:uicontrolstatenormal];
 [btncancel settitle:@"取消" forstate:uicontrolstatenormal];
 [btncancel setbackgroundcolor:self.btncancelbackgroundcolor];
 btncancel.frame = cgrectmake(margin, alertview.bounds.size.height - margin - buttonhigth, buttonwidth, buttonhigth);
 btncancel.tag = 0;
 [btncancel addtarget:self action:@selector(didclickbtnconfirm:) forcontrolevents:uicontroleventtouchupinside];
 //確定按鈕
 uibutton * btnconfirm = [[uibutton alloc] init];
 btnconfirm.tag = 1;
 [alertview addsubview:btnconfirm];
 [btnconfirm settitlecolor:[uicolor whitecolor] forstate:uicontrolstatenormal];
 [btnconfirm settitle:@"確定" forstate:uicontrolstatenormal];
 [btnconfirm setbackgroundcolor:self.btnconfirmbackgroundcolor];
 btnconfirm.frame = cgrectmake(alertview.bounds.size.width - margin - buttonwidth, alertview.bounds.size.height - margin - buttonhigth, buttonwidth, buttonhigth);
 [btnconfirm addtarget:self action:@selector(didclickbtnconfirm:) forcontrolevents:uicontroleventtouchupinside];
 
}
 
/** 點擊確定 or 取消觸發事件 */
-(void)didclickbtnconfirm:(uibutton *)sender{
 
 if (sender.tag == 0) {
  [self dismissviewcontrolleranimated:yes completion:nil];
  return;
 }
 self.block();
 [self dismissviewcontrolleranimated:yes completion:nil];
}
 
- (void)didreceivememorywarning {
 [super didreceivememorywarning];
}
 
static pbalertcontroller * instance = nil;
+(instancetype)sharealertcontroller{
 
 static dispatch_once_t oncetoken;
 dispatch_once(&oncetoken, ^{
  instance = [[pbalertcontroller alloc] init];
 });
 return instance;
}
 
-(uicolor *)alertbackgroundcolor{
 
 if (_alertbackgroundcolor == nil) {
  _alertbackgroundcolor = [uicolor colorwithred:249/255.0 green:249/255.0 blue:249/255.0 alpha:1];
 }
 return _alertbackgroundcolor;
}
 
/** 確定按鈕背景色 */
-(uicolor *)btnconfirmbackgroundcolor{
 
 if (_btnconfirmbackgroundcolor == nil) {
  _btnconfirmbackgroundcolor = [uicolor orangecolor];
 }
 return _btnconfirmbackgroundcolor;
}
 
/** 取消按鈕背景色 */
-(uicolor *)btncancelbackgroundcolor{
 
 if (_btncancelbackgroundcolor == nil) {
  _btncancelbackgroundcolor = [uicolor bluecolor];
 }
 return _btncancelbackgroundcolor;
}
 
/** message字體顏色 */
-(uicolor *)messagecolor{
 
 if (_messagecolor == nil) {
  _messagecolor = [uicolor blackcolor];
 }
 return _messagecolor;
}
@end

在需要調用的地方進行調用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//
// viewcontroller.m
// pbalertdemo
//
// created by 裴波波 on 16/4/20.
// copyright © 2016年 裴波波. all rights reserved.
//
 
#import "viewcontroller.h"
#import "pbalertcontroller.h"
@interface viewcontroller ()
 
@end
 
@implementation viewcontroller
 
//點擊按鈕彈出提示框
- (ibaction)clickshowalertbtn:(id)sender {
 
 pbalertcontroller * alertvc = [pbalertcontroller sharealertcontroller];
 alertvc.messagecolor = [uicolor redcolor];
 [alertvc alertviewcontrollerwithmessage:@"這是一message沙哈" andblock:^{
  nslog(@"點擊確定后執行的方法");
 }];
 alertvc.modaltransitionstyle = uimodaltransitionstylecrossdissolve;
 [self presentmodalviewcontroller:alertvc animated:yes];
}
 
@end

以上就是本文的全部內容,希望對大家學習ios程序設計有所幫助。

延伸 · 閱讀

精彩推薦
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111302021-03-15
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5272021-01-16
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
主站蜘蛛池模板: 久久亚洲春色中文字幕久久 | h视频免费在线观看 | 91 在线| 成人午夜一区二区 | 亚洲一区二区中文字幕在线观看 | 91重口视频| 欧美在线观看视频一区二区 | 加勒比婷婷色综合久久 | av成人在线电影 | 性看小视频 | 成人福利在线视频 | 毛片在线免费 | 精品偷拍久久 | 青青草好吊色 | 宅男视频在线观看免费 | 久久精品中文字幕一区二区 | 欧美精品一区二区久久 | 欧美成人午夜影院 | 国产一区二区三区在线免费观看 | 国产精品啪一品二区三区粉嫩 | 成人一区二区三区在线 | 国产亚洲精品久久久久5区 日韩一级片一区二区三区 国产精品久久久久av | 欧美色淫 | 国产一区二区影视 | 性欧美极品xxxx欧美一区二区 | 色综av| 一区二区三区四区高清视频 | 免费看性xxx高清视频自由 | 99欧美精品 | 成人免费一区二区三区视频网站 | 欧美a∨一区二区三区久久黄 | videos 欧美 | 麻豆国产一区 | 蜜桃免费在线 | 免费看性xxx高清视频自由 | 毛片视频在线免费观看 | 成人毛片网 | 亚洲伊人色欲综合网 | 中午日产幕无线码1区 | 一级片国产片 | 欧美成人三级视频 |