2015-11-30 26 views
7

イメージをUIButtonの右端にアライメントする方法は、すべてのデバイスの右端に残るようにする方法です。下の画像が表示され、UIButtonには画像(丸三角)が表示されます。画像はiPhone 6からのスクリーンショットですが、iPhone 6の場合は画像が少し左に移動し、iPhone 5の場合は右に移動し、画像は画像の外側に表示されますUIButton。私はこれの理由を知っています、それは私がiPhoneE6に最適な300の値にUIEdgeInsetsの左を設定したからです。だから私の質問はどのように私はすべてのiPhoneのためにこの外観を達成することができますです。ありがとうございました。UIButtonの右端にUIButtonイメージを配置する方法

enter image description here

UIButtonのための私のコード:

class DropDownButton : UIButton{ 

    required init(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder)! 
     style() 
    } 

    private func style() { 
     self.titleEdgeInsets.left = 0 
     self.layer.cornerRadius = 2; 
     self.setImage(UIImage(named: "Arrow_Close"), forState: UIControlState.Normal) 
     self.imageEdgeInsets = UIEdgeInsets(top: 0, left: 300, bottom: 0, right: 0) 
     self.backgroundColor = UIColor(CGColor: "#FFFFFF".CGColor) 
     self.tintColor = UIColor(CGColor: "#616366".CGColor) 
     self.titleLabel!.font = UIFont(name: "OpenSans", size: 15) 



    } 
} 

答えて

3

問題は、あなたがをハードコーディングされていることであるがインセットを左:

self.imageEdgeInsets = UIEdgeInsets(top: 0, left: 300, bottom: 0, right: 0) 

は明らかにそれが動作するつもりはありませんあなたが何をしたいかは、の権利に関して構成されているとき regボタンの幅が狭い!自動レイアウトなどのためにボタンが広がったり狭まったりすると、画像が間違った場所にぶら下がってしまいます。かわりに、に設定してください。

また、サブクラスUIButtonとオーバーライドimageRectForContentRect:。ここで、画像の位置はボタンのサイズに基づいています(自動レイアウトなどのため)。

+0

@mattさんのお返事ありがとうございますが、どうやってimageRectForContentRectを使用しますか?私は非常に迅速です。 –

+1

あなたのコードを書くつもりはありません。それを試してみてください!実験!学ぶ! – matt

関連する問題