2016-03-25 7 views
0

ラウンドボーダーのUIBarButtonItemを作成したいと思います。私のUIBarButtonItemにタイトルがないのはなぜですか?

let postButton = UIButton(type: .Custom) 
    postButton.frame = CGRectMake(0, 0, 90, 30) 
    postButton.layer.borderColor = logoColor(0).CGColor 
    postButton.layer.borderWidth = CGFloat(3.0) 
    postButton.layer.cornerRadius = 4.0 
    postButton.clipsToBounds = true 
    postButton.titleLabel?.font = UIFont(name: "Lato-Bold", size: 10.0) 
    postButton.titleLabel?.textAlignment = .Center 
    postButton.titleLabel?.textColor = UIColor.blackColor() 
    postButton.setTitle("post", forState: .Normal) 
    postButtonBar = UIBarButtonItem(customView: postButton) 

    navigationItem.rightBarButtonItems = [ postButtonBar ] 

これを試しましたが、結果はタイトルのない赤いアウトラインボタンになりました。

あなたが正しくあなたのボタンを構築した場合にあなたのコードは正常に動作します
+0

()' – Slayter

+0

私はあなたのボタンの働きを持っています。 – matt

答えて

2

let postButton = UIButton(type: .Custom) 
    postButton.frame = CGRectMake(0, 0, 90, 30) 
    postButton.layer.borderColor = UIColor.redColor().CGColor 
    postButton.layer.borderWidth = CGFloat(3.0) 
    postButton.layer.cornerRadius = 4.0 
    postButton.clipsToBounds = true 
    postButton.setTitle("post", forState: .Normal) 
    postButton.setTitleColor(UIColor.blackColor(), forState: .Normal) 
    postButton.titleLabel?.font = UIFont(name: "GillSans", size: 10.0) 
    postButton.setTitleColor(UIColor.grayColor(), forState: .Highlighted) 
    let postButtonBar = UIBarButtonItem(customView: postButton) 

を私はあなたのフォントを持っていないので、私は別のフォントを置換するように...また、私は、ハイライト表示にグレー色を追加しましたタップするとボタンが反応するように見えます。

postButton.setTitle("Post", forState: .Normal) 
postButton.setTitleColor(UIColor.blackColor(), forState: .Normal) 

私は私の目の前で、あなたの完全なコードを持っていないとして、私は確かに知っていないが、私はあなたが追加する必要があると思う:私はあなたが使用する必要があると思う

enter image description here

+0

私はコードを '' 'postButton.setTitle(" post "、forState:.Normal)' ''に更新しました。しかし、タイトルはまだ表示されません。 – TIMEX

0

ボタンへのアクションは、それがクリック可能にするために:あなたが代わりにUIButton `の` UIBarButtonItem() `コンストラクタを使用する必要があります

postButton.addTarget(self, action: "functionName", forControlEvents: .TouchUpInside) 
関連する問題