【发布时间】:2016-04-01 16:38:33
【问题描述】:
我创建了一个用作背景的视图,我想在标签文本大于或小于变量数时更改其颜色。脚本没问题,但颜色没有变化。
提前致谢。
导入 UIKit
类 ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var localName: UITextField!
@IBOutlet weak var localNameLabel: UILabel!
@IBOutlet weak var localTemp: UILabel!
@IBAction func getData(sender: AnyObject) {
getWeatherData("http://api.openweathermap.org/data/2.5/weather?q=" + localName.text! + "")
}
@IBOutlet weak var fundo: UIView!
override func viewDidLoad() {
super.viewDidLoad()
getWeatherData("http://api.openweathermap.org/data/2.5/weather?q=London")
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func getWeatherData(urlString: String){
let url = NSURL (string: urlString)
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) { (data, response, error) in
dispatch_async(dispatch_get_main_queue(), {
self.setLabels(data!)
})
}
task.resume()
}
func setLabels(weatherData: NSData) {
do {
let json = try NSJSONSerialization.JSONObjectWithData(weatherData, options:NSJSONReadingOptions.MutableContainers) as! NSDictionary
print(json)
//localNameLabel.text = json[("name")] as? String
if let name = json[("name")] as? String {
localNameLabel.text = name
}
if let main = json[("main")] as? NSDictionary {
if let temp = main[("temp")] as? Double {
//convert kelvin to celsius
let ft = (temp - 273.15)
let myString = ft.description
localTemp.text = myString
self.changeColor()
}
}
} catch let error as NSError {
print(error)
}
var number : Float
func changeColor(){
number = 19.0
if(Float(localTemp.text!) < number){
fundo.backgroundColor = .blueColor()
}else{
fundo.backgroundColor = .orangeColor()
}
}
}
}
编辑后发布整个脚本
【问题讨论】:
-
bg是什么,你叫changeColor吗? -
你是在主线程调用这段代码吗?
bg可见吗? “脚本没问题”是什么意思,你怎么知道的? -
@Aaron Brager:bg 是可见的,我说没关系,因为 Xcode 不会警告我任何错误。我没有调用此代码。我需要吗?
-
你是什么意思“我没有调用这个代码”???当然,这是你的代码?!
-
我认为这是因为条件而自动检查的。对不起,但我自己学的很快。无论如何,忘记并感谢你的好意,@Christian 'fuzi' Orgler