前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实践-小细节Ⅶ

实践-小细节Ⅶ

作者头像
進无尽
发布2018-09-12 18:12:20
7970
发布2018-09-12 18:12:20
举报
文章被收录于专栏:進无尽的文章進无尽的文章

1. iOS11中UIWebVIew

所以网页的y 坐标是 0 ,但是在 iOS 11里面就是无法在 状态栏上显示,iOS11下的系统不会这样会占用 状态栏的位置

2. iOS11中 Undefined symbols for architecture x86_64:

3.从APP中跳转到各种手机设置界面(亲测有效)

一些常用的设置里的位置:

  • 电池电量 Prefs:root=BATTERY_USAGE
  • 通用设置 Prefs:root=General
  • 存储空间 Prefs:root=General&path=STORAGE_ICLOUD_USAGE/DEVICE_STORAGE
  • 蜂窝数据 Prefs:root=MOBILE_DATA_SETTINGS_ID
  • Wi-Fi 设置 Prefs:root=WIFI
  • 蓝牙设置 Prefs:root=Bluetooth
  • 定位设置 Prefs:root=Privacy&path=LOCATION
  • 辅助功能 Prefs:root=General&path=ACCESSIBILITY
  • 关于手机 Prefs:root=General&path=About
  • 键盘设置 Prefs:root=General&path=Keyboard
  • 显示设置 Prefs:root=DISPLAY
  • 声音设置 Prefs:root=Sounds
  • App Store 设置 Prefs:root=STORE
  • 墙纸设置 Prefs:root=Wallpaper

代码演示:

代码语言:javascript
复制
   NSURL *url = [NSURL URLWithString:@"Prefs:root=Wallpaper"];
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        // 系统小于10的时候,打开Wi-Fi界面
        [[UIApplication sharedApplication] openURL:url];
    }else {
        // 系统大于10的时候直接打开当前App的设置界面
        if (([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0)) {
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil];
        }
    }

4.如何实现扫描一次蒲公英安装二维码后,内测版APP自动提示更新

本质实现方式都是集成 蒲公英的SDK。

iOS内测版实现自动检查更新 Android内测版实现自动检查更新

如果有更新版本则会提示用户前往更新,如图所示:

image

注:因操作系统限制,iOS 11及之后版本,当用户点击安装新版本后,会跳转到蒲公英应用单页。iOS 11以下,当用户点击安装新版本后仍然会在应用内直接开始安装。

5. 如何判断这个页面是消失了,还是进入了新的页面

代码语言:javascript
复制
- (void)viewWillDisappear:(BOOL)animated
{
      [super viewWillDisappear:YES];

  if ([[self.navigationController viewControllers] containsObject:self ]) {
        NSLog(@" 暂时消失");
  }else
  {
        NSLog(@" 出栈了");
    }
}

6.程序之间的相互调用

在我们的iOS开发中,我们常常会遇见在程序中打开第三方应用的功能,比如美团付款时打开支付宝,也就是程序之间的相互调用.

xcode-->targets -->info -->url type ** 点击加号,出现上图所示,identifer 写bundle Indentifer就可以,URL schemes是自定义的,随便写什么都可以,其余一样

在打开一个程序,(前提是你的设备上必须有刚设置好schems的那个app),

代码语言:javascript
复制
  [[UIApplacation shareApplication] openUrl :[NSUrl urlWithString:@"你的Schemes//"];

注意://是标识符,是必须得,前面是你自定义的schemes 然后不出什么意外的话你已经通过其他程序打开了你设置schemes的程序

7. iOS11中ScrollerView或者其子类占位 状态栏设置

在ios11系统下,如果tableview或者ScrollerView 是从0开始,需要做简单的适配

适配前

代码语言:javascript
复制
if (@available(iOS 11.0, *)) {
    self.sc.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}else {
    self.automaticallyAdjustsScrollViewInsets = NO;
}

适配后

8.iOS应用内集成AppStore评分功能

跳转到AppStore对应应用评论页面

iOS应用内集成AppStore评分功能

可评分评论,无次数限制

代码语言:javascript
复制
- (IBAction)appStoreComentBtnAction:(UIButton *)sender {`

NSString  * nsStringToOpen = [NSString  stringWithFormat: @``"itms-[apps://itunes.apple.com/app/id%@?action=write-review](apps://itunes.apple.com/app/id%@?action=write-review)"``,@``"AppID"``];//替换为对应的APPID`
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen]];`

}

9.判断某一个对象是什么类

代码语言:javascript
复制
 UIWindow *window = [[[UIApplication sharedApplication]delegate]window];
if ([vc isKindOfClass:[UITabBarController class]]) {
    window.rootViewController = vc;
}else{
     window.rootViewController = [[UINavigationController alloc]initWithRootViewController:vc];
} 

这里很容易错误的写法是: [vc.class isKindOfClass:[UITabBarController class]]

10.使用类别为父类实现功能分散管理

我们使用类别为父类实现功能分散管理:

  • 类别中除了不可以生成成员变量(增加新的属性),使用时完全可以把类别当成原类。
  • 类别中的方法优先调用,也就是会覆盖原类中的方法。
  • 类别可以直接访问原类 .h 中的属性和全局变量,以及倒入的头文件。
  • 如下图,新建一个BaseViewController的类别,不导入头文件,直接使用原类中的 block操作,并且这个block在原类中也有使用,效果和写在一个类中是一样的。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.11.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. iOS11中UIWebVIew
  • 2. iOS11中 Undefined symbols for architecture x86_64:
  • 3.从APP中跳转到各种手机设置界面(亲测有效)
  • 4.如何实现扫描一次蒲公英安装二维码后,内测版APP自动提示更新
  • 5. 如何判断这个页面是消失了,还是进入了新的页面
  • 6.程序之间的相互调用
  • 7. iOS11中ScrollerView或者其子类占位 状态栏设置
  • 8.iOS应用内集成AppStore评分功能
  • 9.判断某一个对象是什么类
  • 10.使用类别为父类实现功能分散管理
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档