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
- iOS 自定義內容的彈窗iOS
- avalonia自定義彈窗
- 自定義 alert 彈窗
- react-native 仿原生自定義彈窗|iOS/Android 彈窗效果ReactiOSAndroid
- 自定義版本更新彈窗
- 自定義view————廣告彈窗View
- uniapp 自定義彈窗元件APP元件
- 學習筆記(三十):ArkUi-UIContext.getPromptAction(彈窗)筆記UIContext
- WPF 自定義MessageBox 彈窗提示 彈窗載入
- avalonia實現自定義小彈窗
- Java學習筆記之自定義異常Java筆記
- Jquery實現自定義訊息彈窗jQuery
- 學習筆記(二十七):ArkUi-警告彈窗(AlertDialog)筆記UI
- Pytest學習筆記6-自定義標記mark筆記
- Cordova學習--iOS自定義外掛iOS
- 智慧窗-學習筆記(二)筆記
- 步步學習自定義View:Hencoder 精簡版學習筆記(一)View筆記
- 小程式自定義modal彈窗封裝實現封裝
- iOS Block學習筆記iOSBloC筆記
- iOS Runloop學習筆記iOSOOP筆記
- EasyUI 筆記(3)彈出窗體UI筆記
- Laravel學習筆記之Artisan命令生成自定義模板的方法Laravel筆記
- ASP.NET MVC 學習筆記-7.自定義配置資訊ASP.NETMVC筆記
- C#關於List<T>的自定義排序學習筆記C#排序筆記
- Dotnetty學習筆記——自定義初始化處理器Netty筆記
- 34.qt quick-Popup彈出視窗自定義QTUI
- fastadmin新增自定義按鈕,並使用彈窗功能AST
- Android開發筆記(一百一十八)自定義懸浮窗Android筆記
- Vue學習筆記(二)------axios學習Vue筆記iOS
- svelte元件:Svelte自定義彈窗Popup元件|svelte移動端彈框元件元件
- Vue學習筆記 —— axiosVue筆記iOS
- Axios用法–學習筆記iOS筆記
- iOS runtime學習筆記iOS筆記
- iOS 屬性學習筆記iOS筆記
- iOS指標學習筆記iOS指標筆記
- 【Go學習筆記6】使用者自定義型別和方法Go筆記型別
- 直播軟體開發,工具類的自定義彈窗效果