iOS10 App适配权限 Push Notifications 字体Frame 遇到的问题
程序员文章站
2023-12-16 20:52:58
添加配置权限
nsphotolibraryusagedescription ...
添加配置权限
<!-- 相册 --> <key>nsphotolibraryusagedescription</key> <string>"xx"想使用您的相册,需要您的允许</string> <!-- 相机 --> <key>nscamerausagedescription</key> <string>"xx"想使用您的相机,需要您的允许</string> <!-- 麦克风 --> <key>nsmicrophoneusagedescription</key> <string>"xx"想使用您的麦克风,需要您的允许</string> <!-- 位置 --> <key>nslocationusagedescription</key> <string>"xx"想访问您的位置,请您允许</string> <!-- 日历 --> <key>nscalendarsusagedescription</key> <string>"xx"想访问您的日历,请您允许</string> <!-- 媒体资料库 --> <key>nsapplemusicusagedescription</key> <string>"xx"想访问您的媒体资料库,请您允许</string> <!-- 蓝牙 --> <key>nsbluetoothperipheralusagedescription</key> <string>"xx"想访问您的蓝牙,请您允许</string> <!--通讯录 --> <key>nscontactsusagedescription</key> <string>"xx"想访问您的通讯录,请您允许</string> <key>nslocationwheninuseusagedescription</key> <string>请点击“允许”。若不允许,您将无法正常使用“附近”的功能。</string>
添加push notifications支持
开关开启后会自动生成xxxx.entitlements文件
这里需要注意几点
生成的该文件是否包含到你的打包工程中bundle resources中 如果没有手动添加进去
如果工程有多个target 且多个证书在一起建议不要使用 automatically manage signing
采用下面的这种方法
总结
第一个 我们的项目是多个app时的所以在配置证书的时候要指定对应的证书,自动适配会适配不准确,因为我们的多个工程分多个target好多共用的工程。
第二个 就是生成的entitlements文件要包含到bundle中
适配字体
ios中适配sb中的文本... 最好的办法就是手动变更frame
纯代码的页面可以在计算字体size的时候根据比例添加一些frame
+(cgsize)textframewithstring:(nsstring *)text width:(float)width fontsize:(nsinteger)fontsize { nsdictionary *dict = @{nsfontattributename: [uifont systemfontofsize:fontsize]}; // 根据第一个参数的文本内容,使用280*float最大值的大小,使用系统14号字,返回一个真实的frame size : (280*xxx)!! cgrect frame = [text boundingrectwithsize:cgsizemake(width, cgfloat_max) options:nsstringdrawinguseslinefragmentorigin attributes:dict context:nil]; cgsize textsize = frame.size; cgfloat scale = 17.5/17.0; // ios 10 if ([[uidevice currentdevice].systemversion floatvalue] >= 10.0) { textsize.width = textsize.width * scale; textsize.height = textsize.height * scale; } return textsize; }
以上所述是小编给大家介绍的ios10 app适配权限 push notifications 字体frame 遇到的问题,希望对大家有所帮助