在xcode和tvos中,是否可以将顶层图像转换为图像堆栈?

时间:2016-01-10 20:38:46

标签: xcode parallax tvos apple-tv

在xcode和tvos中,资产目录中的3D视差图标显示为图像堆栈。但是所谓的顶级货架图像并非如此。

是否可以将顶层图像转换为xcode中的多层图像堆栈?

2 个答案:

答案 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]
    }

}