2013-10-13 146 views
0

我有一個UIButton,它具有titleLabel屬性的自定義FONTUIButton標題只顯示它的一半

由於某種原因,iOS 6.0只顯示標題的一半。我試圖增加標題的高度。但那不起作用。

我在想什麼?

this我唯一的選擇?

btn.titleLabel.font = [UIFont fontWithName:@"Frutiger95-UltraBlack" size:17]; 

enter image description here

這是它應該如何看(減去顏色變化)

enter image description here

+0

給我的例子應該如何正常看? – holex

+1

這可能與我使用自定義字體時遇到的問題有關。看到這裏:http://stackoverflow.com/questions/9015317/custom-uifont-baseline-shifted – Cyrille

+0

再次,請不要使用Cocoa Touch問題的可可標籤。正確的標籤是可可觸摸的。 – 2013-10-14 02:06:14

回答

0

單行標籤必須在垂直軸上含量低的抗壓性的優先級。所以當你增加字體大小時,他們不會增加他們的intrinsicContentSize的高度。將compressionResistancePriority設置爲UILayoutPriorityDefaultHigh或UILayoutPriorityRequired應該修復它。

[btn.titleLabel setContentCompressionResistancePriority:UILayoutPriorityRequired 
               forAxis:UILayoutConstraintAxisVertical]; 

我認爲更新標籤就足夠了,但您可能還需要增加按鈕本身的優先級。

[btn setContentCompressionResistancePriority:UILayoutPriorityRequired 
             forAxis:UILayoutConstraintAxisVertical]; 
+0

它沒有工作。我可以增加大小,並可以使用系統字體正常工作。當我在ios 6.0上使用自定義字體時,它會被切斷。字體大小也沒有關聯。我可以嘗試使用自定義字體的任何大小,它不會工作 –

0

我認爲你需要設置按鈕標題零,然後做出自己的自定義的UILabel 並添加標籤上的按鈕類似如下─

UILabel *lblloginbtntitle=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, btnLogin.frame.size.width, btnLogin.frame.size.height)]; 
lblloginbtntitle.text=NSLocalizedString(@"Login", nil); 
lblloginbtntitle.textAlignment=NSTextAlignmentCenter; 
lblloginbtntitle.textColor=[UIColor whiteColor]; 
lblloginbtntitle.font=[UIFont fontWithName:@"AvenirNextLTPro-Regular" size:20]; 
[btnLogin addSubview:lblloginbtntitle]; 
[btnLogin setTitle:@"" forState:UIControlStateNormal]