首页 > 其他分享 >iOS小技能:简化版的隐私弹窗

iOS小技能:简化版的隐私弹窗

时间:2022-10-26 15:06:16浏览次数:52  
标签:vc 简化版 self iOS UIColor 同意 appearance navigationBar 弹窗


iOS小技能:简化版的隐私弹窗_.net

I demo项目简介

1.1 使用Cocoapods 管理第三方库依赖

在项目目录下​​touch Podfile​​​之后声明依赖库,然后允许​​pod intsall​​进行依赖的安装

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '9.0'
inhibit_all_warnings!
target 'AgreementView' do
pod 'Masonry'
pod 'ReactiveObjC'
pod 'AXWebViewController'

1.2 使用MVVM架构

利用​​ReactiveObjC​​​ 简单的实现MVVM,在 iOS 的 MVVM 实现中,使用​​ RAC​​​ 来在​​ view​​​ 和 ​​viewModel ​​​之间充当​​ binder​​​ 的角色,优雅地实现两者之间的信息同步。此外,我们还可以把 RAC 用在 model 层,使用​​Signal​​来代表异步的数据获取操作,比如读取文件、访问数据库和网络请求等(同样可以在 MVC 的 model 层这么用)。


1.3 使用常量配置数据

配置常量:QCTConsts.h

/**
配置隐私政策链接URL
*/
extern NSString * _Nonnull const k_serviceAgreement_URL;

/**
配置隐私政策链接URL
*/
NSString * const k_serviceAgreement_URL = @"https://kunnan.blog.csdn.net";

配置本地化字符串:Localizable.strings

#define
"agree" = "同意";
"disagree" = "不同意";

1.4 同意/拒绝协议处理逻辑

会话对象新增一个属性,用于判断登录界面是否显示隐私弹框

/**
是否弹出协议框:
尚未同意时,在登录界面就需要一直展示弹框,只有点击同意才能消失弹框。
拒绝是停留在当前界面,或者退出app
*/
@property (nonatomic,assign) BOOL
  1. 同意协议
id  _Nullable x) {
@strongify(self);
[self.modal hide:YES];

NSLog(@"同意协议,开始保存登录信息,进入首页");
// [self.viewModel.gotojumpHomeRACSubject sendNext:@1];// 读者自己实现
  1. 不同意协议处理逻辑
id  _Nullable x) {
NSLog(@"处理方式1. 不同意协议,给温馨提示,点击我知道了,停留在当前界面。(进入死循环)");
// exit(0);

NSLog(@"处理方式2. 不同意协议,给温馨提示,点击我知道了,停留在当前界面。(进入死循环)");

[[[UIAlertView alloc]initWithTitle:QCTLocal(@"QCT_qct_Tips") message:QCTLocal(@"QCT_We_only") delegate:nil cancelButtonTitle:QCTLocal(@"QCT_Got_it") otherButtonTitles:nil, nil] show];




}];

1.5 demo下载

​关注工号:iOS逆向​

经不可以轻传,也不可以轻取。

想要免费意见建议的行为都是耍流氓”,他不是在请教,即使有用,也不会对你感激,他不准备付出任何代价,哪怕是一句谢谢。

一切寻求免费建议的行为都是耍流氓;愿意花钱的提问者才是真心的。

iOS小技能:简化版的隐私弹窗_ico_02

II WebVC导航栏主题的适配(iOS15)

​iOS15 UI适配之导航条主题: 背景颜色、标题颜色 ​

#pragma
+ (void)setupListnavigationItemAndBarStyle:(UIViewController*)vc{
// 修改返回箭头样式

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
[vc.navigationController.navigationBar setTintColor: kNavListbackArrowColor];

[vc.navigationController.navigationBar setBackgroundImage:[self createImageWithColor: [UIColor whiteColor]] forBarMetrics:UIBarMetricsDefault];

[self setupBackgroundImage4ios15:vc];



}
/**
导航栏主题的适配(iOS15)
*/
+(void)setupBackgroundImage4ios15:(UIViewController*)vc{


// 设置标题颜色
NSDictionary *dict = @{NSForegroundColorAttributeName: kNavListTextColor,NSFontAttributeName:kNavListNSFontAttributeName};
[vc.navigationController.navigationBar setTitleTextAttributes:dict];


NSDictionary *dictitem = @{NSForegroundColorAttributeName: kNavListbackArrowColor,NSFontAttributeName:kNavListUIBarButtonItemNSFontAttributeName};


for (UIBarButtonItem* item in vc.navigationItem.leftBarButtonItems) {
[item setTitleTextAttributes:dictitem forState:UIControlStateNormal];


// [item setTitleTextAttributes:dict];
}


if(@available(iOS 15.0, *)) {

UINavigationBar *navigationBar = vc.navigationController.navigationBar;

UINavigationBarAppearance *appearance = [UINavigationBarAppearance new];


appearance.titleTextAttributes =dict;

appearance.backgroundImage = [self createImageWithColor: [UIColor whiteColor]];

appearance.backgroundColor = UIColor.whiteColor;


appearance.shadowColor= UIColor.clearColor;


[UIBarButtonItem.appearance setTitleTextAttributes:dictitem forState:UIControlStateNormal];


UIBarButtonItem.appearance.tintColor =kNavListbackArrowColor;


navigationBar.standardAppearance = appearance;

navigationBar.scrollEdgeAppearance = appearance;


}else{

[vc.navigationController.navigationBar setBackgroundImage:[self createImageWithColor: [UIColor whiteColor]] forBarMetrics:UIBarMetricsDefault];
}

}


+ (UIImage *) createImageWithColor: (UIColor *) color
{
CGRect rect=CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);

UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return

标签:vc,简化版,self,iOS,UIColor,同意,appearance,navigationBar,弹窗
From: https://blog.51cto.com/iosre/5797923

相关文章