2015-10-02 13 views
5

के लिए नई विधियां मैं एक परीक्षण टीवीओएस ऐप बना रहा हूं। मेरे पास एक छवि है (टेबलव्यू के बाहर) और जब "केंद्रित" नहीं चुना गया है, तो मैं छवि को बदलना चाहता हूं ... मुझे पता है कि सेब ने फोकस के लिए कुछ तरीकों को जोड़ा है। क्या कोई मुझे बता सकता है कि इस छवि को "फोकस" में बदलने के लिए मैं किस तरीके का उपयोग करूंगा? और मैं इसका उपयोग कैसे करूं? मैं इस विधि का उपयोग करेंगे:UITableView और टीवीओएस

- (BOOL)tableView:(UITableView *)tableView canFocusRowAtIndexPath:(NSIndexPath *)indexPath 

या मैं का प्रयोग करेंगे:

- (void)tableView:(UITableView *)tableView didUpdateFocusInContext:(UITableViewFocusUpdateContext *)context withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator 

कृपया मुझे पता है! धन्यवाद!

+0

जब आप tableViewCell फ़ोकस बदलते हैं तो आप छवि को बदलना चाहते हैं ... क्या यह सही है? –

उत्तर

7

यदि आप छवि को बदलना चाहते हैं तो UITableViewCell आइटम फ़ोकस प्राप्त करें, तो आपको दूसरी विधि का उपयोग करना चाहिए।

- (void)tableView:(UITableView *)tableView didUpdateFocusInContext:(UITableViewFocusUpdateContext *)context withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator 
{ 
    //You can get focused indexPath like below 
    NSIndexPath *nextIndexPath = [context nextFocusedIndexPath]; 
    // Now get image from data source, I will assume you have an images array 
    UIImage *image = [_imagesArray objectAtIndex:nextIndexPath.row]; 
    // Set image to image view, assuming you have a property imageView 
    _imageView.image = image; 
} 
0

मैं tvOS पर UITableView इस्तेमाल नहीं किया है, लेकिन ऐसा लगता है कि अगर आइटम uitable के बाहर है कि यह नहीं फ़ोकस करने योग्य तालिका प्रतिनिधि तरीकों का उपयोग कर सकेंगे। हालांकि, अगर आप एक कस्टम वर्ग के साथ UIImageView का विस्तार कर सकता है, और उसके बाद की तरह ओवरराइड:

- (void) didUpdateFocusInContext:(UIFocusUpdateContext *) context withAnimationCoordinator:(UIFocusAnimationCoordinator *)coordinator 
{ 
    if (context.nextFocusedView == self){ 
     // change image 
     self.image = focusedImage; 
    } else { 
     // restore view 
     self.image = normalImage; 
    } 

} 
- (void)canBecomeFocused 
{ 
    return YES; 
} 

आप UITableView से imageView करने के लिए नेविगेट कठिनाइयों में चलाते हैं, तो आप दो क्षेत्रों को पाटने के एक UIFocusGuide उपयोग करने की आवश्यकता हो सकती है।