Уменьшить рамку UIButton после установки UIEdgeInsets
Надеюсь, это довольно простой вопрос, но как мне уместить кадр UIButton после следующего кода (проект без дуги и *.nibs):
_fotosButton = [UIButton buttonWithType: UIButtonTypeCustom];
[_fotosButton setImage: [UIImage imageNamed: @"kino_gallery_normal.png"] forState: UIControlStateNormal];
[_fotosButton setImage: [UIImage imageNamed: @"kino_gallery_highlight.png"] forState: UIControlStateHighlighted];
[_fotosButton setTitle: NSLocalizedString(@"FOTOS", nil) forState: UIControlStateNormal];
[_fotosButton setTitleColor: RGBCOLOR(11.0f, 176.0f, 225.0f) forState: UIControlStateNormal];
[_fotosButton setTitleColor: [UIColor grayColor] forState: UIControlStateDisabled];
[_fotosButton.titleLabel setFont:TTSTYLEVAR(kinoFont10)];
[_fotosButton sizeToFit];
[self updateButtonInsets:_fotosButton];
[self addSubview: _fotosButton];
- (void) updateButtonInsets:(UIButton*) button {
CGSize imageSize = button.imageView.frame.size;
CGSize titleSize = button.titleLabel.frame.size;
button.titleEdgeInsets = UIEdgeInsetsMake(0.0f, -imageSize.width, -imageSize.height, 0.0);
titleSize = button.titleLabel.frame.size;
button.imageEdgeInsets = UIEdgeInsetsMake(-titleSize.height, 0.0f, 0.0f, -titleSize.width);
}
Это результат моего кода:
Итак, как мне вписать рамку (зеленая область) в контент (заголовок + изображение) без лишних отступов. Я не могу жестко закодировать значение кадра кнопки, потому что приложение использует локализацию. Спасибо!
1 ответ
Решение
Я не думаю, что это хорошее решение, но я опубликую его. Любые комментарии будут оценены))
titleSize = button.titleLabel.frame.size;
button.imageEdgeInsets = UIEdgeInsetsMake(-titleSize.height, 0.0f, 0.0f, -titleSize.width);
[button setSize:CGSizeMake(titleSize.width, titleSize.height + imageSize.height)];
Итак, я просто установил размер кнопки вручную, и вот как это выглядит сейчас
Спасибо