如何在tvOS中获取聚焦视图的大小?我需要它的大小来将标签从视图中移动到适合焦点框架的新位置。
hwazgwia1#
我想你要找的是UIImageView提供的focusedFrameGuide。使用imageview.focusedFrameGuide.layoutFrame可以确定如何重新定位标签。
UIImageView
focusedFrameGuide
imageview.focusedFrameGuide.layoutFrame
myzjeezk2#
使用“自动布局”需要设置两个约束:
focusedConstraint = label.topAnchor.constraint(equalTo: imageView.focusedFrameGuide.bottomAnchor) unfocusedConstraint = label.topAnchor.constraint(equalTo: imageView.bottomAnchor)
并在didUpdateFocus上激活/停用:
didUpdateFocus
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { super.didUpdateFocus(in: context, with: coordinator) if context.nextFocusedView == self { unfocusedConstraint?.isActive = false focusedConstraint?.isActive = true } else if context.previouslyFocusedView == self { focusedConstraint?.isActive = false unfocusedConstraint?.isActive = true } coordinator.addCoordinatedAnimations({ self.layoutIfNeeded() }, completion: nil) }
2条答案
按热度按时间hwazgwia1#
我想你要找的是
UIImageView
提供的focusedFrameGuide
。使用
imageview.focusedFrameGuide.layoutFrame
可以确定如何重新定位标签。myzjeezk2#
使用“自动布局”需要设置两个约束:
并在
didUpdateFocus
上激活/停用: