私はあなたの質問が幅広く、あなたが試したことを示さなかったので、これを行う方法の基本的なアイデアを伝えます。
基本的にUIButton
サブクラスを作成します。それをSocialButton
としましょう。
SocialButton
クラスのdrawRect
メソッドをオーバーライドします。この方法では、UIGraphicsGetCurrentContext()
を使用してCGContext
を取得する必要があります。次にCGContextDrawImage
と呼んでCGRect
に画像を描画します。このCGRect
は、あなたのイメージが表示される位置です。ここで
はあなたのアイデアを与えるためにいくつかのコードです:
class SocialButton: UIButton {
override func drawRect(rect: CGRect) {
let context = UIGraphicsGetCurrentContext()
CGContextDrawImage(context, someRect, UIImage(named: "someImage")?.CGImage)
}
}
someRect
は画像がで描画される矩形である
EDIT:。
ストーリーボードへの社会的なボタンを追加するにはあなたのクラスの上に@IBDesignable
を追加する必要があります。また、image
というプロパティを追加する必要があります。こうすることで、人々はボタン内でどのようなイメージを設定できるようになります。クラスは次のようになります:
@IBDesignable
class SocialButton: UIButton {
@IBInspectable // This is added so that you can change the image in interface builder
var image: UIImage?
override func drawRect(rect: CGRect) {
let context = UIGraphicsGetCurrentContext()
CGContextDrawImage(context, someRect, self.image?.CGImage)
// You can also set the tint, bg color and other stuff here.
}
}
これで、クラスで変更する必要があります。ストーリーボードに!
まず、ビューコントローラにUIButton
をドラッグし、それを選択:
次に、右側のアイデンティティインスペクタを開きます。あなたが何であるかわからない場合は、Xcodeの左側にあるIDカードアイコンをクリックしてください。
あなたは "クラス" フィールドにいることがわかりますか?ただ、そこに「SocialButton」と入力し、Enterキーを押して入力します。
:
プロパティインスペクター(スライダーアイコンが付いたもの)に切り替えて、あなたのカスタムボタンのイメージプロパティが表示されるはずです
プロパティインスペクタを使用して画像を選択できます。drawRect
を正しく実装している場合は、ボタンの左側に画像が描画されているはずです。
私は、私のストーリーボードのプロトタイプのセルの中にある「UIButton」のイメージとして、笑顔の絵文字イメージを持つ「UIButton」をどうやって持っているかを説明しました。ストーリーボードボタンの代わりにプログラムボタンを配置するためのプログラマチックなアプローチをどのように適用するかはわかりません。 – DiligentDev
@DiligentDev @DiligentDev私はあなたにそれを行う方法を示すために私の答えを編集しました。 – Sweeper