- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道这个问题已经被问过很多次了,但我仍在学习,我已经在 S.O. 中尝试了所有可能的解决方案。而且我一次都没有运气。所以这是问题所在:
代码如下:
View Controller
import UIKit
import TVUIKit
class SecondViewController: UIViewController {
@IBOutlet weak var myView: UIView!
@IBOutlet weak var myCollection: MyCollection!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}
extension SecondViewController: UICollectionViewDataSource {
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 10
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath) as! MyCell
cell.myPoster.title! = "Header " + String(indexPath.row + 1)
cell.myPoster.tag = indexPath.row + 1
cell.posterTapAction = { cell in
print("Header is: \(cell.myPoster.title!)")
}
return cell
}
}
extension SecondViewController: UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
// This one works - but that's not what I am looking for
print("From didSelectItemAt indexPath: \(indexPath.item + 1)")
}
}
Collection View
import UIKit
class MyCollection: UICollectionView {
override func awakeFromNib() {
super.awakeFromNib()
}
override func layoutSubviews() {
super.layoutSubviews()
}
}
细胞
import UIKit
import TVUIKit
class MyCell: UICollectionViewCell {
var posterTapAction: ((MyCell) -> Void)?
@IBOutlet weak var myPoster: TVPosterView!
@IBAction func myAction(_ sender: TVPosterView) {
posterTapAction?(self)
print("Poster pressed \(sender.tag)")
}
}
知道我遗漏了什么吗?我很乐意在按下海报后设法打印一个虚拟字符串。
我也尝试过选择器和委托(delegate)的解决方案,但都没有用。因此,请让我们专注于 closures 的这个特定解决方案。 .谢谢!
最佳答案
我终于找到了。像往常一样,这是由于 tvOS 焦点。基本上,单元格必须不可聚焦,以便单元格内的 UIControl 元素(在我的例子中是 TVPosterView,但它可以是任何 UIControl)将成为焦点。这很诡异,因为在图形上它确实看起来好像海报有焦点(可以稍微旋转海报)。
解决方案是添加collectionView(_:canFocusItemAt:)到 UICollectionViewDelegate
extension SecondViewController: UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView,
canFocusItemAt indexPath: IndexPath) -> Bool {
return false
}
func collectionView(_ collectionView: UICollectionView,
didSelectItemAt indexPath: IndexPath) {
// Now, thanks to the function above, this is disabled
print("From didSelectItemAt indexPath: \(indexPath.item + 1)")
}
}
我已经在这个问题的代码中进行了测试,并将其也添加到我的项目中,终于可以了!
关于Swift:永远不会调用 Collection View 单元格中 UIControl 的 tvOS IBAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56912775/
两部分问题: 首先,Apple TV 是否在 sleep 时在后台运行应用程序事件?我认为情况会是这样,因为 Apple TV 不依赖电池。 其次,如果不是这种情况,我将如何覆盖它以保持应用程序运行并
当我们在 tvOS 应用商店浏览应用程序并选择一个应用程序时,应用程序商店将显示一个主题图像作为所选应用程序的背景,我在 Xcode tvOS 项目中玩,但找不到可以为我的 tvOS 设置这样背景的地
我试图覆盖在 tvOS 上进行焦点更改时播放的声音,但我似乎找不到任何表明这是否可能的信息。我稍微浏览了一下 Apple 文档,并查看了一些声音 API,但似乎都不合适。有人知道这是否可能吗?如果可能
我收到以下错误: ERROR ITMS-90528: "Invalid Image Asset. The image asset 'App Icon - Small' in 'Payload/Proj
当我们接收到触摸时,即使我们按下触摸屏的右下角,触摸也会从触摸屏的中心开始(x 960 y 540)。 我们如何在远程触摸面板上获取绝对按下位置 - 左上角为 0 0,右下角为 1920 x 1080
与 UIButton , tvOS 产生 UIControlEvents.PrimaryActionTriggered (不是 .TouchUpInside ,就像在 iOS 上那样)当按钮获得焦点并
由于 tvOS 中不提供 UIDatePicker,所以向用户询问日期/时间有什么用?是否有一个新的类来代替 UIDatePicker ? 谢谢 最佳答案 由于 Apple 没有为 tvOS 提供日期
我知道,SwiftUI 目前处于测试阶段,但我想确保正确使用 focusable。 实际上,当我在列表中向下滚动时,焦点项目会在列表向下滚动时跳过 3 或 4 行(向上滚动方向即可)。 您可以在 b4
我已经设置并显示了一个基本的 MenuBarTemplate。 如何对用户的菜单选择使用react并加载适当的内容模板? 最佳答案 在 menuItem标签包括 template属性指向要加载的模板和
如果我通过蓝牙将 Siri Remote 连接到 MacBook,然后运行 tvOS 模拟器,它会检测运动事件吗? 最佳答案 是的,来自 Siri Remote 加速计的运动事件可用于模拟器。 但
我没有新的 Apple TV,但正在使用模拟器为其制作游戏原型(prototype)。不幸的是,正如 tvOS 文档所示,我似乎无法让 GCController 将 Siri Remote 列为可用
对于 Apple TVOS,使用 TVML 比自定义应用程序(基于媒体的应用程序而不是游戏)有什么优势吗?从我从苹果文档中读到的内容来看,我无法找出任何这样的优势(尽管它主要谈论 TVML/TVJ)。
我最近开始使用 TVML/TVJS,但不确定如何继续处理以下问题。 当前的问题是在渲染页面时在同一页面上使用多个模板,即我想在 ListTemplate 上添加 MenuBarTemplate 等。
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 9 个月前关闭。 Improve t
是否可以在 tvOS 应用程序中同时使用 native View / Controller 和 TVML?似乎使用 TVML 需要您设置一个“应用程序 Controller ”而不是普通的 View
是否可以在 tvOS 应用程序中同时使用 native View / Controller 和 TVML?似乎使用 TVML 需要您设置一个“应用程序 Controller ”而不是普通的 View
iOS 企业应用程序能够使用 list 文件在网络上分发。 tvOS 可以以类似的方式分发吗?我知道 tvOS 没有网络浏览器,但我想知道是否有办法将文件空投到 Apple TV 上以安装内部 tvO
我正在尝试通过 iTunes Connect 提交 tvOS 应用程序,每次我尝试时都会收到以下消息: Invalid Toolchain. New apps and app updates must
游戏 Controller 按钮B默认情况下,退出应用程序并导航回 tvOS 主屏幕。起初我认为这很直观,但很快意识到这就是 Nimbus MENU 按钮( Controller 的中间部分)的用途,
我有一个包含 2 个目标的 Xcode 项目:一个用于 iOS,一个用于 tvOS。我正在使用以下命令行命令来构建它: xcodebuild -workspace "/Users/xxx/Code/p
我是一名优秀的程序员,十分优秀!