日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单的自定义弹框

發布時間:2025/5/22 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单的自定义弹框 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  作為初學者,很多人都是用的系統自帶的彈框,非常的簡單,完全不能滿足用戶的交互,所以這里,我們需要自定義一個彈框,把輸入框、圖片、按鈕等添加到彈框里面。為了避免重復冗余的代碼,參考了別人的代碼,自己做了一個自定義彈框,可以在項目中使用到。給大家一個思路。  

  這是代碼的接口定義,只需要調用一行代碼就可以彈出一個自定義的視圖啦。還會添加一些動畫效果,讓彈框彈出跟消失更美觀。

+ (void)showPromptBoxWithCustomView:(UIView *)customView;+ (void)promptBoxHiden;// 不會消失,需要手動點擊 + (void)showPromptBoxWithImage:(UIImage *)image text:(NSString *)text;// 在幾秒有消失 + (void)showPromptBoxWithText:(NSString *)text;

?

  動畫效果跟顯示框效果也是必須有的

/*** 顯隱提示框*/ - (void)promptBoxHidenWithView:(SQPromptBox *)view speed:(CGFloat)speed {[UIView animateWithDuration:speed animations:^{view.coverView.alpha = 0.0f;} completion:^(BOOL finished) {if (finished) {[view.coverView removeFromSuperview];}}]; }/*** 動畫效果*/ - (void)presentWithDuration:(CGFloat)duration speed:(CGFloat)speed {[UIView animateWithDuration:speed animations:^{self.alpha = 1.0f;self.coverView.backgroundColor = [UIColor colorWithWhite:0.0f alpha:0.5f];} completion:^(BOOL finished) {if (finished) {if (!self.customView) {[self performBlock:^{[self promptBoxHidenWithView:self speed:speed];} afterDelay:duration];}}}]; }

  

  還有一步很重要,需要通過字數來計算label的高度,如果沒有這一步完成的效果就沒有那么好看了。

- (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize {NSDictionary *attrs = @{NSFontAttributeName : font};return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size; }

?

  這是一個布局的方法,需要計算好,不然就不能自適應不能尺寸的iPhone了

- (void)layoutSubviews {if (!self.customView) {CGSize textSize = [self sizeWithText:self.textLabel.text font:self.textLabel.font maxSize:CGSizeMake(kWidth - 2 * kMagin, MAXFLOAT)];if (self.imageView.image) {self.imageView.frame = CGRectMake((self.frame.size.width - self.image.size.width) / 2.0f, kMagin, self.image.size.width, self.image.size.height);self.textLabel.frame = CGRectMake((kWidth - textSize.width) / 2.0f, CGRectGetMaxY(self.imageView.frame) + kMagin, textSize.width, textSize.height);}else {CGFloat height = textSize.height < kHeight ? kHeight : textSize.height;self.textLabel.frame = CGRectMake((kWidth - textSize.width) / 2.0f, kMagin, textSize.width, height);}CGRect rect = [self typeFrame];rect.size.height = CGRectGetMaxY(self.textLabel.frame) + kMagin;self.frame = rect;} }

?

  

?

  這是把彈框和蒙版加載當前顯示控制器的view上,通過下面的方法來遍歷,能獲取到控制器

/*** 得到currentViewController*/ - (UIViewController *)getCurrenViewController {UIViewController *currenVIewController = nil;// 返回一個app的實例,keyWindow(只讀)UIWindow *window = [UIApplication sharedApplication].keyWindow;if (window.windowLevel != UIWindowLevelNormal) {NSArray *windows = [[UIApplication sharedApplication] windows];for (UIWindow *tempWindow in windows) {if (tempWindow.windowLevel == UIWindowLevelNormal) {window = tempWindow;break;}}}UIView *frontView = [[window subviews] objectAtIndex:0];// 接受下一個響應者id nextResponder = [frontView nextResponder];if ([nextResponder isKindOfClass:[UIViewController class]]) {currenVIewController = nextResponder;} else {currenVIewController = window.rootViewController;}return currenVIewController; }

?

  因為代碼比較多,就沒有一一展示出來,就提供一個小小的思路,供大家參考。

  最后就是上面代碼的網站
? ? ? https://github.com/empty-sq/-.git

轉載于:https://www.cnblogs.com/shensq/p/5203445.html

總結

以上是生活随笔為你收集整理的简单的自定义弹框的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本免费高清一区二区 | 国产女人18水真多毛片18精品 | 国产成人一区二区 | 木木影院 | 韩日av | 青青免费视频 | 国产精品无码在线播放 | 少妇在线| 校园伸入裙底揉捏1v1h | 亚洲国内精品 | 成人综合网站 | 欧美做爰性生交视频 | 成人欧美一区二区三区黑人一 | 色玖玖综合 | 国产真实在线 | 久久精品av | 最新国产视频 | 九九热九九热 | 黑名单上的人全集免费观看 | 国产ts人妖调教重口男 | 精品一区二区在线看 | 欧美高清二区 | 欧美日韩在线视频 | 波兰性xxxxx极品hd | 野外一级片 | 性久久久 | 黄色三级a | 国产骚b| 中国女人内谢69xxxx免费视频 | 亚洲国产一区二区在线观看 | 蜜桃精品在线 | 99re6热在线精品视频播放 | 国产午夜成人久久无码一区二区 | 中文日韩在线观看 | 吞精囗交69激情欧美 | 日韩免费视频一区 | 鲁在线视频 | 国产后入清纯学生妹 | 在线人成 | 国产成人精品久久二区二区91 | 欧美一区二区三区四区视频 | 综合色88 | 国产成人综合久久 | 风流僵尸艳片a级 | 日本一本二本三区免费 | 一个色综合网站 | 久久无码视频一区 | 福利片在线看 | 另类少妇人与禽zozz0性伦 | 久久久久亚洲国产 | 奇米婷婷 | 一区视频免费观看 | 手机在线小视频 | 国产97色在线 | 一个人在线观看www软件 | 欧美成人免费大片 | 亚洲精品aa| 在线观看免费 | 欧美日韩人妻精品一区二区三区 | 国产麻豆91 | 亚洲特级毛片 | 成人精品免费在线观看 | 亚洲双插 | 国产在线播放一区 | 人人爽人人做 | 爱的色放在线 | 亚洲国产成人在线观看 | 精品国产福利 | 91久久精品夜夜躁日日躁欧美 | 狠狠干快播 | 91美女高潮出水 | 亚洲涩视频 | 中文字幕精品一区二区三区视频 | 国产精品123区 | 亚洲av片一区二区三区 | 一级片a级片 | 久在线观看视频 | 国产亚洲色婷婷久久99精品 | 青青青手机视频在线观看 | 美国黄色a级片 | 在线成人免费视频 | 国产三区四区视频 | 337p粉嫩色噜噜噜大肥臀 | 日韩欧美视频免费在线观看 | 69xx网站| 日韩在线激情 | 国产亚洲欧美日韩精品 | 天天看夜夜爽 | 国产中文字幕一区 | www.久久综合 | 亚洲aaaaa特级 | 好吊妞视频一区二区三区 | 国语对白91| 91免费 看片| 毛片网站有哪些 | 亚洲天堂三区 | 福利综合网 | 亚洲国产一区二区三区 | 超碰香蕉 |