2015-11-27 80 views
9

我有一個UIView與它的一個按鈕,需要設置焦點的按鈕時,視圖被添加到self.view,但我不知道爲什麼按鈕不當視圖添加時重點關注!tvOS:強制一個按鈕被聚焦

- (void)didUpdateFocusInContext:(UIFocusUpdateContext *)context withAnimationCoordinator: (UIFocusAnimationCoordinator *)coordinator { 



     if (context.nextFocusedView == backButton) { 

      [UIView animateWithDuration:1 delay:0 usingSpringWithDamping:.40 initialSpringVelocity:.60 options:UIViewAnimationOptionAllowUserInteraction animations:^ { 

       context.nextFocusedView.transform = CGAffineTransformMakeScale(1.5, 1.5); 
       context.nextFocusedView.layer.shadowOffset = CGSizeMake(0, 10); 
       context.nextFocusedView.layer.shadowOpacity = 1; 
       context.nextFocusedView.layer.shadowRadius = 15; 
       context.nextFocusedView.layer.shadowColor = [UIColor redColor].CGColor; 
       context.nextFocusedView.layer.shadowOpacity = 1; 

      } completion:nil]; 


     } 

} 

我也試過其他屬性:

- (void)openView { 

     [backButton preferredFocusedView]; 
     [backButton canBecomeFocused]; 
     [backButton setNeedsFocusUpdate]; 

     [self.view addSubView:customView]; 
} 

- (UIView *)preferredFocusedView { 

     return [backButton preferredFocusedView]; 
} 

但這些努力的!

+1

你的問題是關於tvOS,而不是iOS或Xcode。只在問題中使用相關標籤。 – rmaddy

+0

@rmaddy iOS和Xcode標籤有更多機會被觀看!比只有200個標籤的tvOS請不要編輯我的問題 –

+2

您不會標記問題以獲取更多視圖。你給一個問題添加標籤,讓有相應知識的人看到你的問題。你的問題與iOS或Xcode無關。使用錯誤標籤有什麼意義?當然你可以得到更多的意見,但這些額外的意見來自可能不具備所需知識的人。根據你的邏輯,你還應該添加Java和Android標籤。這也會給你更多的意見。 – rmaddy

回答

4

這應該工作。

- (UIView *)preferredFocusedView { 

     return backButton; 
} 

而不是返回[backButton preferredFocusedView],只需返回backButton。

6

讓我們假設你有一個帶有屬性backButton(UIButton)的UIViewController。這個按鈕已經正確設置,並在ViewController視圖的可見邊界內。它還應該爲UIControlEventPrimaryActionTriggered事件定義一個動作。

如果您希望在UIViewController的視圖顯示的按鈕集中,返回按鈕preferredFocusedView:

- (UIView *)preferredFocusedView { 
    return self.backButton; 
} 

但是,如果你希望它在視圖中的生命週期或用戶不同的時間集中流程,你會使用不同的方法。例如,如果您想讓按鈕在任意時間聚焦:確保按鈕將通過preferredFocusedView返回,然後在焦點上下文(簡單情況下,視圖控制器)上調用setNeedsFocusUpdate。

0

您需要從preferredFocusView返回您想要關注的視圖,並致電setNeedsFocusUpdate,以便焦點系統將焦點轉移到焦點系統上。