1

5つのアイテムすべてを毎回スクロールするだけでなく、左右にスクロールして中央で停止できる15のアイテムを含むtabBarを作成したい(毎回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 に答える