Swiftワン・ピース・コード:吹き出し用のViewを使う・・仕込み編
こんにちは。川上です。
所々の場所に、吹き出し感じのViewを諸々で表示してみました。
結構、面白いViewになりそうです。
まず、吹き出し感じのView(BalloonView)の仕込みから。。。
1 2 3 4 5 | // enum Type enum eBalloonType : Int { case eBlloonUL = 0, //上Line-左側向け バルーン描き ・・・ } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | //MARK: - ++++ 吹き出しView BalloonView -- class BalloonView: UIView { let triangleSideLength: CGFloat = 20 let triangleHeight: CGFloat = 17.3 //ポップUpメニューの種類 var swCtrll = eBalloonType.eBlloonUL var bkMyColor = UIColor.green override func draw(_ rect: CGRect) { super.draw(rect) let context = UIGraphicsGetCurrentContext() context!.setFillColor(bkMyColor.cgColor) switch swCtrll { case eBalloonType.eBlloonUL: contextBalloonPath_UL(context: context!, rect: rect) ・・・・ } } // MARK: - 三角形印の矩形 上Line-左側向け バルーン描き func contextBalloonPath_UL(context: CGContext, rect: CGRect) { //角が丸い四角 let maru:CGFloat = triangleHeight let roundRect = UIBezierPath(roundedRect: CGRect(x:rect.origin.x + maru, y:rect.origin.y + maru, width:rect.width - maru * 2, height: rect.height - maru * 2), cornerRadius: 10) roundRect.lineWidth = 6 roundRect.fill() //吹き出し三角つぶし let triangleRightCorner = (x: triangleSideLength * 2 , y: triangleHeight) let triangleBottomCorner = (x: triangleSideLength / 2, y: rect.origin.y) let triangleLeftCorner = (x: triangleSideLength , y: triangleHeight) context.move(to: CGPoint(x: triangleLeftCorner.x, y: triangleLeftCorner.y)) context.addLine(to: CGPoint(x: triangleBottomCorner.x, y: triangleBottomCorner.y)) context.addLine(to: CGPoint(x: triangleRightCorner.x, y: triangleRightCorner.y)) context.fillPath() } } |
仕込んだBalloonViewに、色んなボタンやカレンダーを組み込んで、貼り付けて行くのです。
ではでは。