Изменить пространство между элементами UIBarButton на ноль? - PullRequest
1 голос
/ 23 февраля 2012

У меня пользовательские кнопки UIBarButtonItem.То, как Графический дизайнер сделал Изображения, они созданы так, чтобы они сталкивались друг с другом и между ними не было промежутка в 10 пикселей.Есть ли способ устранить разрыв между UIBarButtonItems при добавлении их в UIToolBar?

Спасибо

1 Ответ

1 голос
/ 23 февраля 2012

Итак, повозившись, я смог заставить что-то работать. Хотя я не уверен на 100%, что понимаю почему. Если я передаю изображение, которое является широким (больше 15 + px), оно работает нормально, если я добавлю изображение, которое имеет ширину 1px, я не смогу заставить его работать. Я ищу что-то вроде:

<image> | <Image> | <image> |    <flex space>       | <image> | <Image> | <image>

Хотя я не хотел создавать изображения с | в них, поэтому у меня есть изображение, которое является просто разделителем |. При добавлении этой кнопки я не могу закрыть промежуток между ними. Я возился с рамкой и значениями Inset безрезультатно.

Вот что у меня есть для более широких кнопок:

-(id)initWithTitle:(NSString *)title normalImage:(UIImage *)normalImage highlightedImage:(UIImage *)highlightedImage selectedImage:(UIImage *)selectedImage target:(id)target action:(SEL)action {

button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:normalImage forState:UIControlStateNormal];
[button setImage:highlightedImage forState:UIControlStateHighlighted];
[button setImage:selectedImage forState:UIControlStateSelected];
[button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 74, 48)];

// This is the code that seemed to make it work 
// Though not 100% sure why
// - - - - -
UIEdgeInsets buttonInset = UIEdgeInsetsMake(0, -5, 0, -5);
button.contentEdgeInsets = buttonInset;
[button sizeToFit];
button.autoresizingMask = UIViewAutoresizingNone;
// - - - - -

buttonLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 30, 74, 17)];
buttonLabel.opaque = NO;
buttonLabel.backgroundColor = [UIColor clearColor];
buttonLabel.font = [UIFont systemFontOfSize:12.0f];
buttonLabel.text = title;
buttonLabel.textAlignment = UITextAlignmentCenter;
[button addSubview:buttonLabel];
[buttonLabel release];

    // create a UI
self = [super initWithCustomView:button];
[self setStyle:UIBarButtonItemStyleBordered];

return self;

}
...