Подтвердить что ты не робот

Выравнивание текста UIButton?

Я создаю несколько кнопок. На кнопке я показываю дату и идентификатор ссылки, заданные пользователем. Я хочу, чтобы эти данные были выровнены по кнопке.

Что я пробовал:

[button.titleLabel setTextAlignment:UITextAlignmentLeft]; 
button.titleLabel.textAlignment = UITextAlignmentLeft;

Но это не сработает.

 - (void)viewDidLoad
{
 [super viewDidLoad];
 [scrollView setScrollEnabled:YES];
 [scrollView setContentSize:CGSizeMake(320, 500)];

int i = 0;

for (CalculatorData *data in calcDatas) {

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];


    button.frame = CGRectMake(1 , 20 + i*40, 295, 30);

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"MM/dd/yyyy HH:MM:SS"];

    NSString *dateString = [dateFormat stringFromDate:data.updateDate];

    NSString *title = [NSString stringWithFormat:@"%@ : %@",dateString,[data dataKey]];


    [button setTitle:title forState:UIControlStateNormal];


    [button addTarget:self action:@selector(buttonPressed:)
    forControlEvents:UIControlEventTouchUpInside];
    button.tag = data.calcId;


    [scrollView addSubview:button];
    i++;
}
4b9b3361

Ответ 1

Вы можете использовать contentHorizontalAlignment:

"Горизонтальное выравнивание содержимого (текста или изображения) в пределах приемник".

и contentVerticalAlignment для этого:

"Вертикальное выравнивание содержимого (текста или изображения) в пределах приемник".

Использование примера:

button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
button.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;

Ответ 2

Используйте это:

button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill; 


button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

button.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

Ответ 3

button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
button.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

Ответ 4

введите описание изображения здесь

Посмотрите на Content-Alignment Vertical в раскадровке

Ответ 5

button.titleLabel.textAlignment = NSTextAlignmentLeft;

Ответ 6

В Swift вы можете использовать это:

uibutton/uilabel.titleLabel?.textAlignment =.Center

NSTextAlignment - это перечисление, для которого вы можете назначить его, разместив .VALUE

Ниже перечислены возможные перечисления выравнивания case Left//Выровненный по левому краю

case Center // Visually centered
case Right // Visually right aligned
/* !TARGET_OS_IPHONE */
// Visually right aligned
// Visually centered

case Justified // Fully-justified. The last line in a paragraph is natural-aligned.
case Natural // Indicates the default alignment for script

Ответ 7

Swift 3.x:

button.titleLabel?.textAlignment = .center

Ответ 8

Для Swift 3 для меня работало следующее:

button.contentHorizontalAlignment = .left
button.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0)