2013-08-09 5 views
1

Xcode изначально устанавливает это свойство, но невозможно с моно касанием! как я могу установить эти свойстваКак изменить элемент заголовка UIButton TitleLabel

button.titleLabel.numberOfLines = 1; 
button.titleLabel.adjustsFontSizeToFitWidth = YES; 
button.titleLabel.lineBreakMode = UILineBreakModeClip; 

Свойство TitleLabel свойство readonly в моно касание. и переопределить это свойство не работает

ответ

-1

попробовать это один

[back.titleLabel setAdjustsFontSizeToFitWidth:YES]; 
    [back.titleLabel setNumberOfLines:1]; 
    [back.titleLabel setLineBreakMode:NSLineBreakByCharWrapping]; 

вы можете изменить кнопку название элемента с помощью кнопки набора метода.

0

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

Вызов его следующим образом:

[button setTitle:@"Edit" forState:UIControlStateNormal] 

После этого, если вам нужно указать другие свойства, которые вы можете сделать это так:

-setTitleColor:forState 

Документально здесь: apple reference for UIButton titleLabel

+0

проблема не с xcode и объективом c. что работает отлично, но monotouch с C# не работает. –

1

факт, что TitleLabel имеет только геттер в норме. Это то же самое в ObjC, например. от Apple documentation.

@property(nonatomic, readonly, retain) UILabel *titleLabel 

Однако это не проблема в вашем коде (либо для Xamarin.iOS или ObjC), так как вы не установки нового UILabel. Что делает код, это установка свойств на ярлыке.

IOW это только для чтения, потому что вы не можете установить новый экземпляр UILabel к UIButton, но это нормально для изменения существующего экземпляра. Таким образом, следующий код C# будет работать (как и ваш оригинальный ObjC):

button.TitleLabel.NumberOfLines = 1; 
button.TitleLabel.AdjustsFontSizeToFitWidth = true; 
button.TitleLabel.LineBreakMode = UILineBreakMode.Clip; 
Смежные вопросы