Уменьшить рамку 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)];

Итак, я просто установил размер кнопки вручную, и вот как это выглядит сейчасобрезанный

Спасибо

Другие вопросы по тегам