Открытие изображений TTStyledLabel в ImageViewer - PullRequest
0 голосов
/ 27 декабря 2011

Могу ли я сделать так, чтобы, когда пользователь нажимает на изображение в TTStyledLabel, оно открывается в средстве просмотра изображений Three20?

1 Ответ

1 голос
/ 28 декабря 2011

В основном да.Поскольку TTStyledText может содержать html-теги, вы можете использовать навигацию Three20 для своего преимущества, все, что вам нужно сделать, это обернуть тег img тегом и установить собственное отображение для контроллера, полученного из средства просмотра фотографий Three20.*

в вашем делегате приложения есть сопоставление для вашего контроллера, например:

TTNavigator* navigator = [TTNavigator navigator];
TTURLMap* map = navigator.URLMap;
[map from:@"yourapp://photoViewer/(initWithPhotoUrl:)" toViewController:[TTWebController class]];

контроллер представления фотографий должен иметь следующий метод init:

-(id)initWithPhotoUrl:(NSString*)photoURL {
    self = [self initWithNibName:nil bundle:nil];
    if (self) {
        NSString *unencodedURL = [photoURL gtm_stringByUnescapingFromURLArgument];//this is where you decode the string (notice we encode it in the html). Google toolbox has a nice category for Strings to encode and decode urls see: http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/GTMNSString%2BURLArguments.h?r=373
    }
    return self;
}

Внутри этого initWithPhotoUrlвам нужно создать фоторесурс - обратитесь к примеру TTCatalog, чтобы узнать, как создать MockPhotoSource.

...