[英]UIButton custom font vertical alignment
我有一個使用自定義字體的UIButton
,該字體在我的視圖加載時設置:
- (void)viewDidLoad
{
[super viewDidLoad];
self.searchButton.titleLabel.font = [UIFont fontWithName: @"FONTNAME" size: 15.0 ];
}
我遇到的問題是字體似乎漂浮在中心線上。 如果我注釋掉這一行,默認字體會很好地垂直居中顯示。 但是更改為自定義字體會破壞垂直對齊。
我在帶有自定義字體的表格單元格上也遇到了同樣的問題。
我是否需要在某處告訴視圖自定義字體不如其他字體高?
編輯:我剛剛意識到我使用的字體是 Windows TrueType 字體。 我可以在 Mac 上的 TextEdit 中很好地使用它,只是我的應用程序中的對齊有問題
在 UILabel 中未正確顯示自定義安裝的字體中討論了類似的問題。 沒有給出解決方案。
這是適用於我的自定義字體的解決方案,它在 UILabel、UIButton 等中存在相同的問題。 結果證明,字體的問題在於,與系統字體的值相比,它的 Ascender 屬性太小了。 Ascender 是字體字符上方的垂直空白。 要修復您的字體,您必須下載Apple Font Tool Suite命令行實用程序。 然后使用您的字體並執行以下操作:
~$ ftxdumperfuser -t hhea -A d Bold.ttf
這將創建Bold.hhea.xml
。 用文本編輯器打開它並增加ascender
屬性的值。 您將不得不進行一些試驗,以找出最適合您的確切值。 就我而言,我將其從 750 更改為 1200。然后使用以下命令行再次運行該實用程序以將更改合並回 ttf 文件:
~$ ftxdumperfuser -t hhea -A f Bold.ttf
然后只需在您的應用程序中使用生成的 ttf 字體。
OS X El Capitan
由於SIP ,Apple Font Tool Suite 安裝程序不再在 OSX El Capitan 上工作,因為它試圖將二進制文件安裝到受保護的目錄中。 您必須手動提取ftxdumperfuser
。 首先將 pkg 從 dmg 復制到本地目錄,然后解壓OS X Font Tools.pkg
~$ xar -xf OS\ X\ Font\ Tools.pkg
現在導航到文件夾fontTools.pkg
~$ cd fontTools.pkg/
提取有效載荷
~$ cat Payload | gunzip -dc | cpio -i
現在ftxdumperfuser
二進制文件位於您的當前文件夾中。 您可以將其移動到/usr/local/bin/
以便您可以在終端應用程序內的每個文件夾中使用以下內容。
~$ mv ftxdumperfuser /usr/local/bin/
我解決了調整頂部內容(不是標題!)插圖的問題。
例如: button.contentEdgeInsets = UIEdgeInsetsMake(10.0, 0.0, 0.0, 0.0);
祝你好運!
不確定這是否會有所幫助,因為它可能取決於您的字體,但可能是您的基線未對齊。
self.searchButton.titleLabel.baselineAdjustment =
UIBaselineAdjustmentAlignCenters;
我認為這是最好的答案。 沒有玩上升器,numberOfHMetrics 等......只需通過Glyphs應用程序導入導出並完成工作。 感謝這個答案: https : //stackoverflow.com/a/16798036/1207684
聚會遲到了,但是當這個問題第 N 次襲擊我時,我想我會發布我找到的最簡單的解決方案:使用Python FontTools 。
如果 Python 3 在您的系統上不可用,請安裝它。
安裝字體工具
pip3 install fonttools
FontTools包含一個 TTX 工具,可以實現與 XML 的轉換。
在同一文件夾中將您的字體轉換為 .ttx
ttx myFontFile.otf
對 .ttx 進行必要的編輯並刪除 .otf 文件,因為這將在下一步中替換。
將文件轉換回 .otf
ttx myFontFile.ttx
ftxdumperfuser
導致錯誤。
您可以在 Interface Builder 中嘗試一下。 這是如何做到這一點的快照 -
正如您所看到的,在 IB 中嘗試這樣做有其自身的好處。
注意:顯然有一個比這更好的答案(上面有數百票的票數)
除了編輯字體文件之外,我找不到真正的答案。 我不知道怎么做,也沒有時間,所以我只是把我的照片縮小了,調整細胞使它看起來像是正確對齊的。
我想是一個骯臟的小黑客,但它的工作原理很好。
這是導致問題的唯一字體,因此問題必須與字體文件有關。
實際上並不是我的結論,這是另一個SO帖子,但我無法在任何地方找到它,如果我再次遇到它,我會堅持在評論中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.