在xcode和tvos中,资产目录中的3D视差图标显示为图像堆栈。但是所谓的顶级货架图像并非如此。
是否可以将顶层图像转换为xcode中的多层图像堆栈?
答案 0 :(得分:1)
只有可聚焦的内容才是多层次的,然后你需要提供其中的几个。
有3种顶级货架类型,但很遗憾,它们都不符合您的需求。
您可以在apple tv human interface guide lines中了解有关它们的更多信息。
1)单个静态顶部货架图像
提供视觉丰富的静态图片。你的应用程序的静态顶级货架 未提供动态内容或不可用时使用图像。 以此为契机,突出您的品牌。
不要暗示静态图像中的交互性。 静态顶架 图像不可聚焦,因此它不应包含构成它的元素 看似互动。
2)“动态内容布局” - “分段内容行”
这是针对肖像电影海报的内容。那些可以是多层的,但是:
提供足够的内容以构成完整的行。最低限度, 在分段内容行中加载足够的图像以跨越整个宽度 屏幕。
3)“动态内容布局” - “滚动插页横幅”
这是针对宽屏广告横幅的内容类似。那些可以是多层的,但是:
建议滚动横幅至少使用三张图片 感觉很有效。
答案 1 :(得分:0)
要制作动态内容,您需要an Apple TV extension。要在内容中包含分层图像,请使用Apple Parallax Previewer app加载分层图像中的所有图像,然后导出为LSR文件。将LSR丢弃到Apple TV Extension目标中。使用下面的代码创建滚动插图(而不是像RW教程中那样的分段插图)。然后从应用程序包中读取文件。
请注意,顶部货架将“滚动”您的图像,因此您可能需要3个相关的分层图像(如上面的答案所示)。你可以在this video中看到单个图像的样子(非常蹩脚)。
import Foundation
import TVServices
class ServiceProvider: NSObject, TVTopShelfProvider {
override init() {
super.init()
}
// MARK: - TVTopShelfProvider protocol
var topShelfStyle: TVTopShelfContentStyle {
// Return desired Top Shelf style.
return .inset
}
var topShelfItems: [TVContentItem] {
let v1Ident = TVContentIdentifier(identifier: "V1", container: nil)!
let v1Content = TVContentItem(contentIdentifier: v1Ident)!
v1Content.imageURL = Bundle.main.url(forResource: "v1", withExtension: ".lsr")
// Create an array of TVContentItems.
return [v1Content]
}
}