0

上部に 6 つのタブがある uislider があります。 を参照してください画像

今、スライダーが指しているタブを取得したいと思います。スライダーを動かすと。

すべてのタブは、ドラッグして配置することで再配置できます。そのため、tab1 が tab5 の位置に移動し、スライダーが tab5 (最後から 2 番目の位置) にある場合、tab1 の新しい位置は、tab5 の値ではなく、tab1 の値を表示する必要があります。

- (void)addTab:(UIViewController *)viewController {
if ([self.delegate respondsToSelector:@selector(willShowTab:)]) {
    [self.delegate willShowTab:viewController];
}

if (![self.childViewControllers containsObject:viewController] && self.count < self.maxCount - 1) {
    [self addChildViewController:viewController];
    viewController.view.frame = _contentFrame;

    if (_toobarVisible)
        [self.toolbar setItems:viewController.toolbarItems animated:YES];

    // Add tab selects automatically the new tab
    [UIView transitionWithView:self.view
                      duration:kAddTabDuration
                       options:UIViewAnimationOptionAllowAnimatedContent
                    animations:^{
                        [self.tabsView addTab:viewController.title];

                        if (self.currentViewController) {
                            [self.currentViewController viewWillDisappear:YES];
                            [self.currentViewController.view removeFromSuperview];
                            [self.currentViewController viewDidDisappear:YES];
                        }

                        [self.view addSubview:viewController.view];
                    }
                    completion:^(BOOL finished){
                        [viewController didMoveToParentViewController:self];
                        _currentViewController = viewController;
                    }];
}

}

スニペットコードを教えてください。

あなたの助けに感謝。

ありがとう、

4

1 に答える 1

1

理想的には、すべてのタブが同じ幅である場合、スライダーが現在配置されている合計幅のセクションを特定し、そのインデックスでタブを選択するだけで済みます。それ以外の場合は、タブを反復して水平方向の境界を見つけ、スライダーが選択しているタブを特定する必要があります

于 2012-06-14T13:11:40.607 に答える