質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

772閲覧

UIViewへ指定値をdraw(rect:)で表示したい

mickeydog

総合スコア10

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/11/26 05:55

UIViewの位置・サイズ・文字を任意指定してセットしたいのですが
classコードへ直接記述するのではなく変数で渡すにはどう記述したら良いでしょうか?

参考にさせていただいたサイト
https://llcc.hatenablog.com/entry/2017/05/04/001356

swift

1class ViewController: UIViewController { 2 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 6 let setRect:CGRect = CGRect(x:100, y:100, width:30, height:30 ) //ココと指定した値を 7 let setText = "あ" //ココで指定した値を 8 9 let myView = MyView(frame: view.bounds) 10 myView.backgroundColor = UIColor.white 11 view.addSubview(myView) 12 } 13} 14 15class MyView: UIView { 16 override func draw(_ rect: CGRect) { 17 let path = UIBezierPath(roundedRect: CGRect(x: 100, y: 100, width: 30, height: 30), cornerRadius: 5) //ココと使用したい 18 UIColor.orange.setFill() 19 path.fill() 20 21 "あ".draw(at: CGPoint(x: 100+10, y: 100+8), withAttributes: [ //ココで使用したい 22 NSAttributedString.Key.foregroundColor : UIColor.black, 23 NSAttributedString.Key.font : UIFont.systemFont(ofSize: 18), 24 ]) 25 } 26}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

イニシャライザを追記して実装出来ました。

swift

1class ViewController: UIViewController { 2 override func viewDidLoad() { 3 super.viewDidLoad() 4 5 let myView = MyView(setRect: CGRect(x:200, y:100, width:30, height:30), setText: "test") 6 myView.backgroundColor = UIColor.white 7 view.addSubview(myView) 8 } 9} 10 11class MyView: UIView { 12 var text: String? 13 init(setRect: CGRect, setText: String) { 14 super.init(frame: setRect) 15 text = setText 16 } 17 required init?(coder: NSCoder) { 18 fatalError("init(coder:) has not been implemented") 19 } 20 21 override func draw(_ rect: CGRect) { 22 let path = UIBezierPath(roundedRect: CGRect(x: rect.origin.x, y: rect.origin.y, width: rect.width, height: rect.height), cornerRadius: 5) 23 UIColor.orange.setFill() 24 path.fill() 25 text!.draw(at: CGPoint(x: rect.origin.x+2, y: rect.origin.y+1), withAttributes: [ 26 NSAttributedString.Key.foregroundColor : UIColor.black, 27 NSAttributedString.Key.font : UIFont.systemFont(ofSize: 18), 28 ]) 29 } 30}

投稿2021/11/27 00:45

mickeydog

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問