Xcode 8 Swift 3应用程序是否成功在iOS 7上运行?
我已经尝试确定运行下面描述的一些测试,但是对于更好地了解App Store开发的专家是否可以帮助解释成功和失败的原因,包括下面的问题?
测试1.
所以我打开了Xcode 7.3.1并使用Swift 2.2创建了一个应用程序.我打算将应用程序从iOS 7部署到iOS 10.
我成功运行iOS 9.3 iPhone模拟器上的应用程序,然后在实际的iOS 7.1.2 iPhone设备上运行应用程序也成功.
测试2.
接下来,我采用了相同的项目并在Xcode 8 Beta 2中打开它.(我被提示更新为Swift 2.3或Swift 3.我更新到Swift 2.3然后更新到Swift 3.)
手动输入iOS目标部署为7.0后,我成功运行iOS 10 Beta 2 iPhone模拟器上的应用程序.但是,我尝试在实际的iOS 7.1.2 iPhone设备上运行该应用程序,但这次没有成功,显示以下错误.我用Swift 2.3和Swift 3重复测试,但错误相同:
找不到设备支持文件
此iPhone 4S运行的是iOS 7.1.2(11D257),此版本的Xcode 可能不支持此功能.
测试3.
接下来我尝试在获取应用程序存档后,通过iTunes将在Xcode 8 Beta 2中创建的.ipa应用程序文件直接安装到实际的iOS 7.1.2 iPhone设备上(产品>存档...)
完成.ipa应用程序文件通过iTunes传输到iOS 7.1.2 iPhone设备后,我在实际设备上启动应用程序,这次成功.
问题:
我可以对上表中的所有测试结果做些什么?
重要的是,当通过使用Swift 3在Xcode 8中创建的App Store分发应用程序时,可以安全地预期在iOS 7.1.2 iPhone设备上通过iTunes成功安装的应用程序仍将兼容在App Store下载所有iOS 7设备?
Xcode 7.3.1允许从iOS 7到iOS 9的设备在开发过程中进行测试和调试?
Xcode 8不允许iOS 7设备在开发过程中进行测试和调试,但仍允许将应用程序部署到iOS 7设备?
Swift 2.3作为Swift 3的中间步骤有什么意义?
题:
如何添加自定义VoiceOver辅助功能
Label
或Hint
应用程序图标徽章编号?
例如,当iOS的设置Accessibility > VoiceOver
被打开On
,VoiceOver会朗读项目触及屏幕.对于App Store和Mail图标,将大声朗读以下内容:
App Store图标,VoiceOver说:"App Store.2 可用更新.双击打开."
VoiceOver邮件图标说:"邮件.1条未读邮件.双击打开."
但是,对于我正在研究的项目,VoiceOver读出是通用的,并不完全有用:
我的应用程序图标,VoiceOver说:"我的应用程序.123项新项目.双击打开."
短语"......新项目"太模糊,不准确的,我敢肯定,必须有一种方法使用自定义字符串做出改变这一点,通过设置一个读更好accessibilityLabel
,accessibilityHint
类似什么的.
但究竟如何在Swift代码?
非常感谢.
补充观察:
使用模拟器辅助功能检查器,VoiceOver值显示为Label
- "我的应用程序"和Value
- "123个新项目".在代码中更新了我尝试设置accessibilityValue
自定义 - "123自定义描述".但仍然没有运气,VoiceOver继续阅读"我的应用程序.123 新项目.双击打开."
为什么VoiceOver没有按预期读取自定义徽章值?
码:
以下方法将红色圆形App图标徽章编号添加到我的应用程序图标:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let badgeCount: Int = 123
let application = UIApplication.sharedApplication() …
Run Code Online (Sandbox Code Playgroud) 如何CAShapeLayer()
使用渐变和45度角填充?
例如,在图像1中,下面的代码绘制一个正方形并填充图层blue(UIColor.blueColor().CGColor
).
但是,如何在图像2(即UIColor.blueColor().CGColor
到UIColor.redColor().CGColor
)中填充从蓝色到红色的45度角的渐变?
码:
let path = UIBezierPath()
path.moveToPoint(CGPoint(x: 0, y: 0))
path.addLineToPoint(CGPoint(x: 0, y: 100))
path.addLineToPoint(CGPoint(x: 100, y: 100))
path.addLineToPoint(CGPoint(x: 100, y: 0))
path.closePath()
let shape = CAShapeLayer()
shape.path = path.CGPath
shape.fillColor = UIColor.blueColor().CGColor
Run Code Online (Sandbox Code Playgroud)
我有一个绘图方法,但在调整UIGraphicsBeginImageContextWithOptions的比例因子时,绘图性能会受到很大影响.
当比例为1.0时,一切都工作得非常快,但是,当视网膜显示的比例因子为0.0,2.0或3.0时,在绘制时有很多滞后的表现很糟糕.
当视网膜设备使用0.0,2.0或3.0的比例因子时,可以修改什么来提高性能?
绘制缓慢,滞后:
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, false, 0.0)
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, false, 2.0)
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, false, 3.0)
Run Code Online (Sandbox Code Playgroud)
画得快,没有滞后:
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, false, 1.0)
Run Code Online (Sandbox Code Playgroud) 我可以使用图像实现交替条纹图案填充UIColor(patternImage: UIImage(named: "pattern.png"))
.
但是,如何通过一些简单的紧凑代码以编程方式实现交替条纹图案填充?
以下是我想要实现的两个例子.
题
使用代码,如何
UIView
使用Swift 填充不同的交替颜色条纹?(1)从上到下(90度)运行的双色交替模式?
(2)从左上到右下(45度)运行的三色交替模式?
问题:
我试图在iOS 10中设置应用程序图标徽章编号,但它失败了.据我所知UIUserNotificationSettings
,iOS现已弃用并UNNotificationSettings
取而代之.
题:
如何修改以下代码以用于
UNNotificationSettings
更新iOS 10中的图标徽章编号?还是有另一种简洁的方法吗?
码:
以下代码显示了我如何设置iOS 7 - iOS 9中的徽章.
let badgeCount: Int = 123
let application = UIApplication.sharedApplication()
if #available(iOS 7.0, *) {
application.applicationIconBadgeNumber = badgeCount
}
if #available(iOS 8.0, *) {
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge], categories: nil))
application.applicationIconBadgeNumber = badgeCount
}
if #available(iOS 9.0, *) {
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge], categories: nil))
application.applicationIconBadgeNumber = badgeCount
}
if #available(iOS 10.0, *) {
// ?????
}
Run Code Online (Sandbox Code Playgroud) 在Swift代码中,我如何启动并设置动画UIView
,使其沿圆形路径移动,然后优雅地结束?是否可以使用CGAffineTransform
动画实现这一目标?
我在下面准备了一个GIF,展示了我想要实现的动画类型.
我试图呈现一个ImagePicker
,在用户选择了图像之后,呈现图像编辑ViewController
,用户可以在其中操作图像,然后将编辑后的图像发送回原始图像ViewController
.
题:
是否有标准或最佳实践方法从初始ViewControlle开始,然后在另一个ViewController之后呈现ImagePicker进行成像编辑,然后将其全部显示在初始ViewController中,同时使转换看起来无缝?
下面的尝试3中的建议是一个好的练习方法还是有更好的例子来说明如何实现这一点?
试试1.
我最初的想法是ImagePicker
通过下面的代码以编程方式呈现,然后在选择图像ViewController
后进行图像编辑.但这种方法似乎并不正确.在拍摄ImagePicker
完ViewController
图像之后,我似乎无法正确地将其划分为.(编辑时出现了一堆"意外发现nil,同时展开可选值"错误ViewController
.)
let imagePicker = MyImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .PhotoLibrary
imagePicker.allowsEditing = false
imagePicker.modalTransitionStyle = UIModalTransitionStyle.CoverVertical
self.presentViewController(imagePicker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
试试2.
我的第二次尝试是将图像编辑显示ViewController
为隐藏/透明,然后立即ImagePicker
加载,但这会导致一些空白背景闪烁.
试试3.
所以我遇到了这个建议,这是我第二次尝试使用窗口背景显示当前ViewController
可能的当前图像的变体.http://xissburg.com/presenting-multiple-modal-view-controllers-at-once/
试试4.
我的另一个想法是创建一个单独ViewController
处理a ImagePicker
,然后ViewController
通过接口构建器中的segue 连接每个.
optimization uiviewcontroller uiimagepickercontroller ios swift
问题:
我有一个看似简单的问题,但我就是无法弄清楚。
我在 Xcode 中有一个故事板,其中三个故事UIView
板彼此重叠;一红UIView
一蓝UIView
一绿UIView
。
当所有人UIView
都有一个alpha
of时,我得到图像 A1.0
中所示的结果。
当所有人UIView
都有一个alpha
of时0.5
,我得到的结果如图 B所示。
问题:
如何使每个图像
UIView
看起来像具有差异或加色混合模式的图像 C ?我怎样才能在每次
UIView
移动时实现这一目标?(类似于 Siri 挥手动画中看到的效果。)
图片:
背景
shareImage()
下面代码中的函数启动UIActivityViewController
并共享图像,例如发送到消息或保存到照片。
图像共享后,UIActivityViewController
完成并调用该completionWithItemsHandler
函数activityComplete()
。
该代码在 iOS / iPadOS / MacOS 上运行良好,符合预期并共享图像,但在 MacOS 上,该completionWithItemsHandler
函数activityComplete()
永远不会被调用,并使用标志确认print("Share complete.")
。
Xcode 会记录以下输出:
Scene destruction request failed with error: (null)
问题
导致该completionWithItemsHandler
函数activityComplete()
无法在 MacOS 上调用的问题的原因是什么?如何在代码中纠正此问题?
代码
注意:根据答案添加了两行更新。
import UIKit
class ViewController: UIViewController {
var shareButton = UIButton(type: UIButton.ButtonType.custom)
var activityImage: UIImage!
override func viewDidLoad() {
super.viewDidLoad()
// Create share button
shareButton.setTitle("Share", for:UIControl.State())
shareButton.setTitleColor(.white, for: UIControl.State())
shareButton.backgroundColor = .purple …
Run Code Online (Sandbox Code Playgroud) ios ×10
swift ×10
optimization ×6
uiview ×2
animation ×1
badge ×1
cashapelayer ×1
cgcontext ×1
colors ×1
drawing ×1
graphics ×1
mac-catalyst ×1
macos ×1
uibezierpath ×1
xcode ×1