22

カスタムフォントをアップロードし、次のコードを使用してUIbuttonのタイトルにこのフォントを適用しました

videoButton.titleLabel.font = [UIFont fontWithName:@"LaurenScript" size:20];

問題は、タイトルが最初の文字の上にクリップされていることです(下の写真を参照)。UIlabelで同じフォントを試しましたが、正常に動作するため、フォントに問題はありません。また、を使用してrectFrameを変更しようとしました

[videoButton.titleLabel setFrame:CGRectMake(0, 0, 300, 600)];

しかし、それは何もしませんでした。この問題を解決する方法の手がかりはありますか?乾杯

ここに画像の説明を入力してください

4

6 に答える 6

45

同様の問題があり、タイトルラベルの上で分音符が切り取られました。UIButton サブクラスを作成し、このコードを使用して問題を修正しました。

-(void)layoutSubviews
{
    [super layoutSubviews];

    CGRect frame = self.titleLabel.frame;
    frame.size.height = self.bounds.size.height;
    frame.origin.y = self.titleEdgeInsets.top;
    self.titleLabel.frame = frame;
}
于 2014-01-22T10:11:39.607 に答える
10

これがまだ誰にとっても問題であるかどうかはわかりませんが、(カスタム フォントを使用すると) 上記の解決策では、特にUIButtonプログラムのみで作成されたカスタムの場合、最終的に問題が解決しないことがわかりました。

この問題をどのように修正したかを次に示します。特に、クリッピングの問題を解決したのは次の 1 行です。

UIButton *button = [[UIButton alloc] init];
button = [UIButton buttonWithType:UIButtonTypeCustom];

[button setTitle:@"Nice!" forState:UIControlStateNormal];
[button setFont:[UIFont fontWithName:<CUSTOM FONT NAME> size:buttonWidth/3.0f]];
button = CGRectMake(0, 0, <WIDTH>, <HEIGHT>);

クリッピングを解決した行は次のとおりです。

[button setContentVerticalAlignment:UIControlContentVerticalAlignmentFill];

うまくいけば、これはまだ立ち往生している他の人の助けになります。ハッピーコーディング!

于 2016-07-13T16:07:41.490 に答える
4

画像付きのボタンとカスタムフォント付きのテキストを使用すると、同じ問題が発生しました。すべてを垂直方向の中央に揃える必要がありました。そして、画像は引き伸ばされていません。これは私にとってはうまくいきました。

btn.contentVerticalAlignment = .fill
btn.contentMode = .center
btn.imageView?.contentMode = .scaleAspectFit
于 2017-06-29T20:14:01.303 に答える
4

私はこれをSwift 2.1で試します.Antoineの回答からこのコードを適応させます. これは良いコードではないかもしれませんが、今のところ私の問題を解決します。あなたはそれをあなた自身のために良くするべきです。

import UIKit

class CustomUIButton: UIButton {

    override func layoutSubviews() {
        if var titleFrame : CGRect = titleLabel?.frame{

            titleFrame.size = self.bounds.size
            titleFrame.origin = CGPointZero
            self.titleLabel!.frame = titleFrame
            self.titleLabel!.textAlignment = .Center
        }
    }
}
于 2015-12-26T19:00:33.743 に答える
3

この(悲しい)解決策があります:https://stackoverflow.com/a/10200908/352628

同様の問題があります。titleLabel は非常に制御できないようです。制御するには、ボタンに UILabel サブビューを挿入する必要があります...それは私を悲しくさせます:(

于 2012-11-05T19:28:20.740 に答える