Как вручную скользить к определенному элементу в TTTabStrip (поместить выбранный в центр или сделать смещение содержимого) - PullRequest
1 голос
/ 10 декабря 2010

Вопрос таков: как вручную перейти к определенному элементу в TTTabStrip (поместить выбранный в центр или сделать смещение содержимого)


@interface TTT : NSObject {
  TTTabStrip* _slider;
}

@implementation TTT

_slider.selectedTabIndex = index;

//Это выберет элемент в представлении TTTabStrip, и если элемент находится вне экрана, он будет отображаться на дисплее _slider view.Для этого необходимо установить смещение содержимого для внутреннего представления прокрутки.

Таким образом, основная стратегия заключается в смещении выбранного элемента в центр представления _slider.

Ответы [ 2 ]

0 голосов
/ 14 декабря 2010

Другой способ - взять подпредставления из TTTabStrip, и если это UIScrollView, то это наш объект.

@interface SomeClass : UIViewController <UIScrollViewDelegate> {
   TTTabStrip*    _slider;
   UIScrollView*  _sliderScrollView;
}

@property (nonatomic, retain) IBOutlet TTTabBar* slider;

@end

@implementation SomeClass
@synthesize slider = _slider;

.......

- (void) someMethod {
        for (UIView* internalView in self.slider.subviews) {
                if ([internalView isKindOfClass:[UIScrollView class]]) {
                        _sliderScrollView = [internalView retain];
                        _sliderScrollView.delegate = self;
                }
        }
}

@end
0 голосов
/ 12 декабря 2010

Я добавил новую функцию в TTTabStrip.Смещение должно быть введено вручную, но оно соответствует моей проблеме:


@interface TTTabStrip (Private)
- (void)updateOverflow;
@end

@implementation TTTabStrip (SelectOffset)

- (void)selectTabIndex:(NSInteger)tabIndex withOffset:(float)offset {
    self.selectedTabIndex = tabIndex;

    _scrollView.contentOffset = CGPointMake(offset, 0);
    [self updateOverflow];

}

@end
...