![](/img/trans.png)
[英]How to change programmatically the background color of in tvOS in Swift?
[英]How to change focus programmatically in tvOS
我正在迅速開發一個tvOS應用程序。 我在應用程序中使用UITabBarController
。 我的要求是10秒后自動隱藏AVPlayerViewController
,焦點可以移到AVPlayerViewController
欄項內的AVPlayerViewController
。 我試圖覆蓋preferredFocusedView
,但是焦點無法移至AVPlayerViewController
。
func updateFocus() {
self.playerController.view.hidden = false
self.playerController.view.alpha = 1.0
self.playerController.view.userInteractionEnabled = true
self.playerController.view.layer.zPosition = 1.0
self.preferredFocusedView
setNeedsFocusUpdate()
updateFocusIfNeeded()
}
override var preferredFocusedView: UIView? {
return self.playerController.view
}
請建議我如何以編程方式轉移焦點。
問題focus
不在viewController
當時轉而集中在tabBarController
,所以我會建議你是做這樣的事情,創建一個TabBarController
子類,並設置類故事板的tabController的那類,然后在tabBarController
子類做這樣的事情。
#import "TabBarViewController.h"
@interface TabBarViewController ()
@end
@implementation TabBarViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.tabBar.alpha = 0;
// set alpha = 1 back again when you need.
}
- (UIView*)preferredFocusedView
{
// you can also add some if else here
return [self.selectedViewController preferredFocusedView];// or you can do self.selectedViewController.view if that view is focusable
}
@end
我在這里選擇的視圖控制器是FirstViewController,它看起來像這樣,並且工作正常。
#import "FirstViewController.h"
@interface FirstViewController ()
@property (weak, nonatomic) IBOutlet UIButton *button;
@end
@implementation FirstViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (UIView*)preferredFocusedView
{
return _button;// return view which you want to make focus able
}
@end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.