我刚开始学习Swift,尝试运行一个非常简单的应用程序。我只是想在按下按钮时更新UIView.drawRect。它会在应用程序首次加载时更新/绘制,然后无论我尝试什么都不会再更新。我已经连续几天苦思冥想,找不到任何可帮助我的东西。
我创建了:
单视图应用程序
一个按钮,作为操作链接到视图控制器
一个新类,Test_View,继承自UIView
视图控制器代码:
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")
}
}
(注:每次我按下按钮时,日志都会更新,所以这不是问题。只是显示从未改变。此外,我已经尝试使用随机坐标绘制矩形,所以不是更新了但我没有看到它的问题。)
感谢任何帮助!
drawRect:
中添加super.drawRect(rect)
。 - Ianf
设置为类常量...以便可以在项目范围内访问它。此外...将其作为您视图的子视图添加”。对我来说,这听起来像胡言乱语。如果您能够重写这个句子,就好像您正在向一个孩子(我)解释这些说明,您会如何解释这些说明? - Sebastian