我正在尝试对应用进行编程,以便在它进入信标范围时更改屏幕,并且一直在关注本教程:https://www.hackingwithswift.com/example-code/location/how-to-detect-ibeacons
本教程使用代码:
func updateDistance(_ distance: CLProximity) {
UIView.animate(withDuration: 0.8) {
switch distance {
case .unknown:
self.view.backgroundColor = UIColor.gray
case .far:
self.view.backgroundColor = UIColor.blue
case .near:
self.view.backgroundColor = UIColor.orange
case .immediate:
self.view.backgroundColor = UIColor.red
告诉应用根据信标相对于设备的距离而改变为不同的颜色。我希望我的应用程序做同样的事情,而不是显示颜色,我希望它显示图像。
我已尝试使用UIImageView
,但它没有为我提供选择图像的选项,类似于在使用UIColor
有人可以向我解释如何让它显示图像而不是颜色吗?
我正在使用Xcode 8.3.2
答案 0 :(得分:1)
好的,您需要采取以下几个步骤:
进入界面生成器并创建图像视图。设置布局约束以将其放置在屏幕上所需的位置,并将约束设置为要显示的图像的高度和宽度。
现在打开一个助理编辑器窗口并将其设置为“自动”,这将导致它显示视图控制器的源。
从图像视图控制拖动到视图控制器的顶部以创建IBOutlet。我们称之为anImageView
。
以您要支持的目标分辨率在应用的资产目录中创建图像。您可能需要@ 2x和@ 3x大小的图像用于视网膜设备和6+。您不再需要非视网膜图像,因为iOS 9及更高版本不再支持非视网膜设备。
假设您的资产目录中有名为“unknown.png”,“far.png”,“near.png”和“immediate.png”的条目都是相同的维度(比如说@xx为100x100分, @ 3x版本,仅举例来说。)
现在重写你的功能:
func updateDistance(_ distance: CLProximity) {
switch distance {
case .unknown:
anImageView.image = UIImage(named: "unknown")
case .far:
anImageView.image = UIImage(named: "far")
case .near:
anImageView.image = UIImage(named: "unknown")
case .immediate:
anImageView.image = UIImage(named: "immediate")
}
应该这样做。