可以设置图像背景在Apple Watch中重复吗?

Posted

技术标签:

【中文标题】可以设置图像背景在Apple Watch中重复吗?【英文标题】:It is possible to set an image background to repeat in apple watch? 【发布时间】:2015-01-20 19:33:42 【问题描述】:

我有这个来源:

import Foundation
import WatchKit

class MyController: WKInterfaceController 


@IBOutlet weak var button: WKInterfaceButton!
   
override func awakeWithContext(context: AnyObject?) 
   super.awakeWithContext(context)
  
    let gradientBlue = UIImage(named: "80x1blueback")
    let colorBlue = UIColor(patternImage: gradientBlue!)

    self.button.setColor(colorBlue)
   


每个变量都取值并调用:

self.button.setColor(colorBlue)

成功。但是,在那之后它崩溃了。

libsystem_kernel.dylib`__pthread_kill: 0x10a6a3278: 移动 $0x2000148, %eax

0x10a6a327d: movq %rcx, %r10

0x10a6a3280:系统调用

0x10a6a3282: jae 0x10a6a328c ; __pthread_kill + 20

0x10a6a3284: movq %rax, %rdi

0x10a6a3287: jmp 0x10a69eca3 ; cerror_nocancel

0x10a6a328c: retq

0x10a6a328d: 无

0x10a6a328e: 无

0x10a6a328f: 无

来自 Xcode 的标记停止于:

0x10a6a3282: jae 0x10a6a328c ; __pthread_kill + 20

应用程序在手表上继续运行,但此视图永远不可见。 我的图像高度为 80 像素,宽度为 1 像素。

我确实在 ios 上测试了这个源,它运行良好。所以我认为这一定与手表有关。

【问题讨论】:

当我调用 self.button.setColor(UIColor.brownColor()) 它就像魅力一样。问题似乎在于动态创建的颜色。 【参考方案1】:

是的,这是可能的,尽管这种方式似乎不可能。实际上,这更容易,只是您不会在 Storyboard 上看到任何结果,这会让您认为这是不行的。 方法如下:

1.- 在 Watchkit 应用的资产(不是扩展)上设置您的“重复图像”(在我的例子中:“80x1blueback”)

2.- 将您的图像设置为按钮的背景(它将不可见)

3.- 将您的高度设置为“适合尺寸”选项之外的任何值。

就是这样,编译运行!

【讨论】:

以上是关于可以设置图像背景在Apple Watch中重复吗?的主要内容,如果未能解决你的问题,请参考以下文章

Apple Watch 模态表中的 SwiftUI 图像

在 Apple Watch Storyboard 中的图像顶部添加标签

iOS:将图像保存在 App Group 中以在 Apple Watch 上使用

我可以更改 Apple Watch 模拟器语言吗?

Apple Watch、WatchKit 和 NSUserDefaults [重复]

在Apple Watch上添加不同重复间隔的提醒通知