大佬教程收集整理的这篇文章主要介绍了Swift / UIView / drawrect-如何在需要时更新drawrect,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,您需要为UIVIEw指定一个指定的初始化程序(以frame初始化)。然后将您的对象f
设为类的常量或变量(取决于您的需要),以便可以在项目范围内对其进行访问。另外,您必须将其添加为视图的子视图。看起来像这样:
import UIKit
class VIEwController: UIVIEwController {
let f = test_VIEw(frame: CGRectMake(0, 0, 50, 50))
overrIDe func vIEwDIDLoad() {
super.vIEwDIDLoad()
vIEw.addSubvIEw(f)
}
@IBACtion func buttonpressed(sender: UIbutton) {
f.setNeedsdisplay()
}
}
class test_VIEw: UIVIEw {
overrIDe init(frame: CGRect) {
super.init(frame: framE)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
overrIDe func draw(_ rect: CGRect) {
let h = rect.height
let w = rect.wIDth
let color:UIcolor = UIcolor.yellow
let drect = CGRect(x: (w * 0.25),y: (h * 0.25),wIDth: (w * 0.5),height: (h * 0.5))
let bpath:UIBezIErPath = UIBezIErPath(rect: drect)
color.set()
bpath.stroke()
NSLog("drawRect has updated the vIEw")
}
}
我是学习Swift的新手,并且正在尝试运行一个非常简单的应用程序。我要做的就是 让UIView.drawRect在我按下按钮时更新
。无论我尝试什么,它都会在应用程序首次加载时更新/绘制,然后再更新/绘制。我已经为此奋斗了几天,但我找不到任何帮助。
我创建:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view,typically from a nib.
var f = test_View()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBACtion func Button_Pressed(sender: AnyObject) {
var f = test_View()
f.setNeedsDisplay()
NSLog("Button pressed.")
}
}
class test_View: UIView {
override func drawRect(rect: CGRect) {
let h = rect.height
let w = rect.width
var color:UIColor = UIColor.yellowColor()
var drect = CGRect(x: (w * 0.25),y: (h * 0.25),width: (w * 0.5),height: (h * 0.5))
var bpath:UIBezierPath = UIBezierPath(rect: drect)
color.set()
bpath.stroke()
NSLog("drawRect has updated the view")
}
}
(注意:每次按下按钮,日志都会更新,这不是问题。只是显示永远不会改变。而且,我尝试绘制带有随机坐标的矩形,因此不是更新,而是我没看到。)
谢谢你的帮助!
以上是大佬教程为你收集整理的Swift / UIView / drawrect-如何在需要时更新drawrect全部内容,希望文章能够帮你解决Swift / UIView / drawrect-如何在需要时更新drawrect所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。