日々精進

新しく学んだことを書き留めていきます

ナビバーのボタンとボタンの間隔を離す

FixedSpaceをボタンとボタンの間に入れればよい。
以下サンプルコード。

        [self pushNavigationItem:[[UINavigationItem alloc] init] animated:NO];
        UIBarButtonItem *moveToPreviousGroupButton = [[UIBarButtonItem alloc]
                initWithTitle:@""
                        style:UIBarButtonItemStyleBordered
                       target:self action:@selector(moveToPreviousGroup)];
        moveToPreviousGroupButton.image = [UIImage imageNamed:ARROW_LEFT_IMAGE];
        [self pushNavigationItem:[[UINavigationItem alloc] init] animated:NO];
        self.groupsButton = [[UIBarButtonItem alloc]
                initWithTitle:@"一覧"
                        style:UIBarButtonItemStyleBordered
                       target:self action:@selector(showGroupsPopover)];
        UIBarButtonItem *moveToNextGroupButton = [[UIBarButtonItem alloc]
                initWithTitle:@""
                        style:UIBarButtonItemStyleBordered
                       target:self action:@selector(moveToNextGroup)];
        moveToNextGroupButton.image = [UIImage imageNamed:ARROW_RIGHT_IMAGE];

        UIBarButtonItem *fixedSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
        fixedSpacer.width = 22;
        EditBarButtonItem *editButton = [[EditBarButtonItem alloc]
                initWithTitle:@"編集"
                        style:UIBarButtonItemStyleBordered
                       target:self action:@selector(edit)];
        self.editButton = editButton;
        [self.topItem setLeftBarButtonItems:[NSArray arrayWithObjects:moveToPreviousGroupButton, self.groupsButton, moveToNextGroupButton, fixedSpacer, editButton, nil] animated:NO];

参考:Osmorphis: Multiple Buttons on a Navigation Bar