2015-10-02 11 views
5

Tworzę aplikację testową tvOS. Mam obraz (poza tableview) i gdy "skupiony" NIE został wybrany, chciałbym, żeby obraz się zmienił ... Wiem, że jabłko dodało kilka metod skupienia. Czy ktoś mógłby mi powiedzieć, jakich metod użyłbym, aby zmienić ten obraz, gdy jest w "fokusie"? i jak tego użyć? Chciałbym skorzystać z tej metody:UITableView i nowe metody dla tvOS

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

lub użyłbym:

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

Proszę dać mi znać! Dziękuję Ci!

+0

Chcesz zmienić obraz, gdy tableViewCell zmieni ostrość ... czy to prawda? –

Odpowiedz

7

Jeśli chcesz zmienić obraz, gdy element skupia się na pozycji UITableViewCell, powinieneś użyć drugiej metody.

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

Nie używałem UITableView na tvOS, ale wydaje się, że jeśli przedmiot jest poza sowne, że nie będzie aktywowana przy użyciu metod stół delegata. Jednak można przedłużyć UIImageView z niestandardowej klasy, a następnie zastąpić jak:

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

Jeśli napotkasz trudności, przechodząc do ImageView z UITableView, może trzeba użyć UIFocusGuide do zniwelowania tych dwóch obszarów.

Powiązane problemy