Animation 如何创建AppleTV按钮?

Animation 如何创建AppleTV按钮?,animation,uibutton,tvos,uiblureffect,Animation,Uibutton,Tvos,Uiblureffect,乍一看,它们看起来像普通的UIButtons,但它们下面有一个标签。此外,按钮的背景似乎是模糊的效果 所以我的想法是将它们放在一个集合视图(水平)中。每个单元格包含一个UIButton和一个UILabel。虽然这可能会起作用,但UIButton似乎并没有免费获得移动效果 这是习惯行为吗?如果是这样的话,你怎么能创造这样的效果呢?我打赌它不是一个UICollectionView,而是一个自定义视图的水平UIStackView,其中有一个UIButton和UILabel垂直对齐 这里有一个使用St

乍一看,它们看起来像普通的UIButtons,但它们下面有一个标签。此外,按钮的背景似乎是模糊的效果

所以我的想法是将它们放在一个集合视图(水平)中。每个单元格包含一个UIButton和一个UILabel。虽然这可能会起作用,但UIButton似乎并没有免费获得移动效果


这是习惯行为吗?如果是这样的话,你怎么能创造这样的效果呢?

我打赌它不是一个UICollectionView,而是一个自定义视图的水平UIStackView,其中有一个UIButton和UILabel垂直对齐

这里有一个使用StackView的示例:

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let stackView = UIStackView()
        stackView.axis = .horizontal
        stackView.distribution = .equalSpacing
        stackView.alignment = .center
        stackView.spacing = 30
        view.addSubview(stackView)

        ["One", "Two", "Three", "Caramba"].forEach {
            let buttonStackView = UIStackView()
            buttonStackView.axis = .vertical
            buttonStackView.distribution = .fillProportionally
            buttonStackView.alignment = .center
            buttonStackView.spacing = 15

            let button = UIButton(type: .system)
            button.setTitle($0, for: .normal)
            buttonStackView.addArrangedSubview(button)

            let label = UILabel()
            label.text = $0
            label.font = UIFont.systemFont(ofSize: 20)
            buttonStackView.addArrangedSubview(label)

            stackView.addArrangedSubview(buttonStackView)
        }

        stackView.translatesAutoresizingMaskIntoConstraints = false
        stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
        stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
    }
}

每个按钮都有一个自定义视图而不是垂直视图,这样可以在聚焦时自定义其布局,包括视差效果


要向堆栈中的每个按钮添加视差效果,请查看

,如果堆栈视图不在另一个堆栈视图中,也可以通过堆栈视图来完成,否则按钮将拉伸以填充描述文本的整个宽度。但是,UIButton不具有显示时的移出框效果。你知道怎样才能达到这样的效果吗?你需要自己做一个手势吗?还是有更简单的方法呢?非常感谢您抽出时间来研究这个例子,非常感谢。今晚下班后我会试试。