2015-10-02 20 views
5

Bir test TVOS uygulaması oluşturuyorum. Bir görüntüm var (tablo görünümü dışında) ve "odaklanmış" DEĞİL seçildiğinde, resmin değişmesini istiyorum ... Elmanın odaklanmak için birkaç yöntem eklediğini biliyorum. Birisi bana bu görüntüyü "odak" olduğunda değiştirmek için hangi yöntemleri kullanacağımı söyleyebilir mi? ve nasıl kullanırdım? Bu yöntemi kullanmak misiniz:UITableView ve tvOS için yeni yöntemler

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

ya da ben kullanırım:

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

lütfen bildirin! Teşekkür ederim!

+0

tableViewCell odağı değiştirdiğinde görüntüyü değiştirmek istediğinizde ... bu doğru mu? –

cevap

7

Görüntüyü UITableViewCell ürün odakladığında değiştirmek isterseniz, ikinci yöntemi kullanmalısınız.

- (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

Ben tvOS üzerinde UITableView kullanmadım ama madde UITable dışındaysa o tablo temsilci yöntemleri kullanarak odaklanabilir olmayacağını görünüyor. Ancak, özel bir sınıf ile UIImageView genişletmek olabilir ve benzeri ardından geçersiz: Eğer UITableView dan imageview giderek sorunları ile karşılaşırsanız

- (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; 
} 

, iki alanlarında köprü için bir UIFocusGuide kullanmak gerekebilir.