1

我想创建一个包含 15 个项目的 tabBar,可以左右滚动并在中间停止,而不仅仅是每次滚动所有 5 个项目(每次 320 个)

我找到了一个代码并将其更改为显示 5 个项目,但是当我滚动它时,所有选项卡都更改了,下一个选项卡显示了 5 个项目,依此类推...

- (id)initWithItems:(NSArray *)items {

         self = [super initWithFrame:CGRectMake(0.0, 411.0, 320.0, 49.0)];
         if (self) {
        self.pagingEnabled = YES;
        self.delegate = self;

        self.tabBars = [[[NSMutableArray alloc] init] autorelease];

        float x = 0.0;

        for (double d = 0; d < ceil(items.count / 5.0); d ++) {
            UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(x, 0.0, 320.0, 49.0)];
            tabBar.delegate = self;

            int len = 0;

            for (int i = d * 5; i < d * 5 + 5; i ++)
                if (i < items.count)
                    len ++;

            tabBar.items = [items objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(d * 5, len)]];
            [self addSubview:tabBar];
            [self.tabBars addObject:tabBar];
            [tabBar release];
            x += 320.0;
        }

        self.contentSize = CGSizeMake(x, 49.0);
    }
    return self;
}

如何创建“橡胶效果”,例如,我可以在第 7 个项目上停下来。

4

1 回答 1

0

您将不得不使用与您引用的设计不同的设计。如果您仔细查看代码,您会注意到每 5 个项目创建一个新的选项卡栏。显然,您希望的功能在此设置中不可行。

另一种方法是用你自己的UIScrollView. 准确地获得UITabBar. 相反,您可以自由地实现与您的应用程序外观相协调的自己的设计。

于 2012-09-20T13:26:39.400 回答