2011-09-22 8 views
0

Я хочу, чтобы большая кнопка охватывала длину моих ячеек таблицы, которая содержит значок setImage справа, и setTitle слева. Однако по умолчанию происходит то, что все выровнено влево.Установка положения setImage и setTitle UIButton

Есть ли способ изменить положение изображений UIButton и заголовков? Я хочу, чтобы все было в одной кнопке, так что, если кто-то щелкнет заголовок, значок изменит его состояние.

ответ

0

Что я сделал, это подкласс UIButton и установить [self titleLabel] и [self imageView] в методе layoutSubview.

#import "CustomDetailTableButton.h" 


@implementation CustomDetailTableButton 



- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 

    UILabel *titleLabel = [self titleLabel]; 
    CGRect fr = [titleLabel frame]; 
    fr.origin.x = 10.0; 
    fr.origin.y = 5.0; 
    [[self titleLabel] setFrame:fr]; 

    UIImageView *imageView = [self imageView]; 
    CGRect iFrame = [imageView frame]; 
    iFrame.origin.x = 300.0; 
    iFrame.origin.y = 7.0; 
    [[self imageView] setFrame:iFrame]; 
} 

@end 
0

Сделайте свое изображение тем же самым размером, что и кнопка (т. Е. Выложите его с прозрачностью), поэтому все идет туда, куда вы хотите. Скажем, у вас есть изображение размером 40 x 40, но вы хотите его с правой стороны кнопки 300 x 40. Просто увеличьте размер изображения с прозрачностью, чтобы иметь 260 пикселей ничто из левой. Для вашего текста вы можете использовать значки выравнивания в построителе интерфейса, чтобы поместить заголовок там, где вы хотите.

+0

Я пробовал подклассификацию, и мне удалось переместить заголовок в то место, где я этого хотел, но я не могу определить setImage. Я думаю, что ваш метод самый простой. – Adam

+0

Я не думаю, что это сработает. По какой-то причине мое изображение закрывает текст – Adam

+0

Сделайте фоновое изображение. –

Смежные вопросы