2015-11-07 72 views
1

我有以下UIViewController,這是我在故事板上做的。UIImageView不專注於tvOS

StoryBoad

我面對這裏的問題是,當我試圖在電視上向右滑動遙控我UIImageView沒有得到任何的焦點。事實上沒有發生焦點事件,它試圖把一些日誌

override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) 

但沒有更新焦點事件。之前我有UIImageView直接添加到self.view故事板中,但是我在某處讀到UIImageView本身不是可以調焦的,所以我把UIImageView放在另一個UIView中,但它仍然沒有得到任何關注。我對齊了包含UIImageViewUITextViewUIView的頂部邊緣。

任何幫助將高度讚賞

在一個側面說明我也試圖與UIFocusGuide做,但沒有也行。我認爲我不需要使用UIFocusGuide,因爲它是一個基本的右側滑動焦點。

+0

@ Madu-我有同樣的問題。你能告訴我如何解決它。我也嘗試了下面的答案。但我沒有得到成功。 –

+0

最後我做的是添加一個collectionview,並在collectionviewcell中添加了一個imageView。這對我來說至少做了這個工作 – Madu

回答

6

UIImageView不是默認可以調焦的,並且不會獲得焦點效果,您可以做兩件事使其焦點集中。

  1. 子類UIImageView並在子類中覆蓋canBecameFocused和 回報YES,然後覆蓋didUpdateFoucsInContext和更新的外觀的焦點狀態,就像如果焦點使它更大或改變顏色等
  2. 第二個選擇是將其添加到鑑於這是可聚焦,然後設置imageView.adjustImageWhenAncestorFocused = YES還設置clipToBounds = NOsuperview

所以你的情況爲你添加的ImageView到視圖,則該視圖應該返回YES/T來自canBecameFocused的rue。

+0

第二種情況有拼寫錯誤:adjustImageWhenAncestorFocused應該調整** s ** ImageWhenAncestorFocused。 – JMI

+0

你好,阿德南。我嘗試了繼承並重寫canBecomeFocused和didUpdateFocusInContext方法,但仍沒有更新焦點更新。有什麼建議麼? – shivamkaushik

+0

什麼是您的視圖層次結構?如果您將視圖添加到其他視圖,請確保您重寫了canBecomeFocused方法。 –

2

@C_X是對的。最重要的是,如果UIImageView被添加到self.view那麼不要忘記self.view的子類並覆蓋canBecameFofused方法。