iOS學習筆記--PresentedVC自定義彈窗
一 、封裝自定義彈窗有一下幾種:
1 直接在當前檢視控制器上放view(簡直6翻了)
2 present到一個新的半透明檢視控制器(類似UIAlertViewController,也就是說我們們要用的就是個控制器而不是個View了)
3 使用一個windowLevel更高的UIWindow(UIAlertView就是這種)
4 放在keyWindow上()
5 放在[UIApplication sharedApplication] delegate] window]上
二 看看效果
我選擇這種方法的原因是簡單方便,有複雜互動的也可以,那就是兩個控制器之間的傳值了。
這裡上程式碼:
#import "BCAlertViewController.h"
@interface BCAlertViewController ()
@property (weak, nonatomic) IBOutlet UIView *alertView0;
@property (weak, nonatomic) IBOutlet UILabel *textContent;
@property (weak, nonatomic) IBOutlet UIButton *closeBtn;
@end
@implementation BCAlertViewController
- (void)viewDidLoad {
[super viewDidLoad];
//標註方法setCornerRadious:4 borderColor:nil borderWidth:0 ①
[self.alertView0 setCornerRadious:4 borderColor:nil borderWidth:0];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (IBAction)closeBtnClicked:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
//方法①的註釋 自己寫Category
#import "UIView+CornerRadious.h"
@implementation UIView (CornerRadious)
//設定圓角
- (void)setCornerRadious:(CGFloat)cornerRadious borderColor:(UIColor *)borderColor borderWidth:(CGFloat)borderWidth
{
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:cornerRadious];
CAShapeLayer *maskLayer= [[CAShapeLayer alloc]init];
maskLayer.frame = self.bounds;
maskLayer.path = path.CGPath;
CAShapeLayer *borderLayer = [[CAShapeLayer alloc]init];
borderLayer.lineWidth = borderWidth;
borderLayer.strokeColor = borderColor.CGColor;
borderLayer.fillColor = ClearColor.CGColor;
borderLayer.frame = self.bounds;
borderLayer.path = path.CGPath;
[self.layer insertSublayer:borderLayer atIndex:0];
self.layer.mask = maskLayer;
}
///使用方法
- (IBAction)registerBtnClicked:(id)sender {
BCAlertViewController *alert = [[BCAlertViewController alloc]init];
alert.modalPresentationStyle = UIModalPresentationOverCurrentContext;
alert.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self.navigationController presentViewController:alert animated:YES completion:nil];
}
注意:BCAlertViewController.h 的view的背景色設定
[[UIColor blackColor]colorWithAlphaComponent:0.2];
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2799745/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習筆記(二十八):ArkUi-自定義彈窗 (CustomDialog)筆記UI
- react-native 仿原生自定義彈窗|iOS/Android 彈窗效果ReactiOSAndroid
- avalonia自定義彈窗
- 自定義版本更新彈窗
- uniapp 自定義彈窗元件APP元件
- WPF 自定義MessageBox 彈窗提示 彈窗載入
- 學習筆記(三十):ArkUi-UIContext.getPromptAction(彈窗)筆記UIContext
- avalonia實現自定義小彈窗
- 學習筆記(二十七):ArkUi-警告彈窗(AlertDialog)筆記UI
- Pytest學習筆記6-自定義標記mark筆記
- Cordova學習--iOS自定義外掛iOS
- 步步學習自定義View:Hencoder 精簡版學習筆記(一)View筆記
- 智慧窗-學習筆記(二)筆記
- iOS Block學習筆記iOSBloC筆記
- Dotnetty學習筆記——自定義初始化處理器Netty筆記
- HarmonyOS NEXT開發之ArkTS自定義元件學習筆記元件筆記
- 小程式自定義modal彈窗封裝實現封裝
- fastadmin新增自定義按鈕,並使用彈窗功能AST
- Laravel學習筆記之Artisan命令生成自定義模板的方法Laravel筆記
- 學習筆記(四十二):自定義元件@BuilderParam裝飾器筆記元件UI
- C#關於List<T>的自定義排序學習筆記C#排序筆記
- iOS學習筆記02 UIScrollViewiOS筆記UIView
- 34.qt quick-Popup彈出視窗自定義QTUI
- iOS土味兒講義(二)–彈窗的前世今生iOS
- iOS土味兒講義(二)--彈窗的前世今生iOS
- svelte元件:Svelte自定義彈窗Popup元件|svelte移動端彈框元件元件
- ASP.NET MVC 學習筆記-7.自定義配置資訊ASP.NETMVC筆記
- 直播軟體開發,工具類的自定義彈窗效果
- WKViewManager iOS 彈窗架構ViewiOS架構
- iOS自定義控制元件:精簡的底部彈框iOS控制元件
- 《Haskell趣學指南》筆記之自定義型別Haskell筆記型別
- hive學習筆記之十:使用者自定義聚合函式(UDAF)Hive筆記函式
- ArcGIS實現打點、線路圖、色塊、自定義彈窗
- iOS學習筆記43 Swift(三)類iOS筆記Swift
- iOS學習筆記05 觸控事件iOS筆記事件
- iOS學習筆記39 ReactiveCocoa入門iOS筆記React
- iOS開發之彈窗管理iOS
- 鴻蒙專案實戰(三):自定義彈窗開發實踐鴻蒙