2016-01-20 88 views
3

alignment problem of *如何垂直居中對齊*(星號)的標籤或按鈕

我在自定義按鈕嘗試定心符星號(*),但我不能。

如何垂直居中對齊就像其他字符(1,2 ...)?

+0

可以嘗試使用這個unicode:http://www.fileformat.info/info/unicode/char/2217/index.htm – Surely

+0

如果你想讓它居中,你應該對它做一些定製。對於'*',默認情況下不會發生。 –

+0

字符不是以居中。它們被製作成與基線對齊。如果你想要一個字符以不同的方式排列,你必須手動進行對齊或使用圖像。 – Sulthan

回答

0

你可以簡單地使用這一行代碼。

button.titleEdgeInsets=UIEdgeInsetsMake(left,bottom,right,top) 
0

這是「海藻」給你一個很好的解決方案,正好與價值發揮你喜歡調整。 https://stackoverflow.com/a/24294816/4205432

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var button: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     button.centerLabelVerticallyWithPadding(5) 

     button.backgroundColor = UIColor.grayColor() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

extension UIButton { 

    func centerLabelVerticallyWithPadding(spacing:CGFloat) { 
     // update positioning of image and title 
     let imageSize = self.imageView!.frame.size 
     self.titleEdgeInsets = UIEdgeInsets(top:0, 
      left:-imageSize.width, 
      bottom:-(imageSize.height + spacing), 
      right:0) 
     let titleSize = self.titleLabel!.frame.size 
     self.imageEdgeInsets = UIEdgeInsets(top:-(titleSize.height + spacing), 
      left:0, 
      bottom: 0, 
      right:-titleSize.width) 

     // reset contentInset, so intrinsicContentSize() is still accurate 
     let trueContentSize = CGRectUnion(self.titleLabel!.frame, self.imageView!.frame).size 
     let oldContentSize = self.intrinsicContentSize() 
     let heightDelta = trueContentSize.height - oldContentSize.height 
     let widthDelta = trueContentSize.width - oldContentSize.width 
     self.contentEdgeInsets = UIEdgeInsets(top:heightDelta/2.0, 
      left:widthDelta/2.0, 
      bottom:heightDelta/2.0, 
      right:widthDelta/2.0) 
    } 
} 

enter image description here

4

只需使用一個不同的角色。而不是*(星號U + 002A),也有很多是相似的,中心的其他選項:

U + 2217星號符*(這是集中在某些字體,而不是其他人)

U + 273B TEARDROP -SPOKED ASTERISK✻

U + FE61 SMALL星號*

U + FF0A FULLWIDTH星號*

U + 2735 EIGHT指出針輪STAR✵

U + 2736 SIX POINTED BLACK STAR✶

FileFormat.info給出我最喜歡的搜索界面。但您也可以拉起角色查看器(^⌘Space)。