UIview类型的值没有成员文本

时间:2016-05-19 12:12:41

标签: ios swift uiview

import UIKit

class ViewController: UIViewController {


@IBOutlet weak var userGuessTextField: UITextField!

@IBOutlet var resultLabel: UIView!


@IBAction func Guess(sender: AnyObject) {

    let diceRoll = String(arc4random_uniform(6))

    if diceRoll == userGuessTextField.text
    {
        resultLabel.text = "You are right"
    }
    else
    {
        resultLabel.text = "You are "
    }

}

override func viewDidLoad() {
    super.viewDidLoad()
    // 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.
}

任何人都可以帮助我吗?为什么我收到此错误,因为我是iOS的初学者并且学习这门语言。

3 个答案:

答案 0 :(得分:2)

请改变......

@IBOutlet var resultLabel: UIView!

@IBOutlet var resultLabel: UILabel!

答案 1 :(得分:2)

您正在设置@IBOutlet var resultLabel: UIView!这样的插座,它的类型为UIView,因此您的resultLabel对象属于UIView且它没有属性text < / p>

我认为你应该选择UILabel代替UIView

因此,在界面构建器中拖动一个标签 - 按住Ctrl键并从中拖动到类(在助理编辑器中) - 并输出插座名称。

希望这会有所帮助:)

答案 2 :(得分:0)

来自Apple documents

UIView类定义了屏幕上的矩形区域以及用于管理该区域内容的界面。

...通过子类化UIView并自己实现必要的绘图和事件处理代码,可以呈现更复杂的内容。 UIKit框架还包括一组标准子类,范围从简单按钮到复杂表,可以按原样使用。例如,一个UILabel对象绘制文本字符串UIImageView对象绘制图像。

从storyboard / xib中删除resultLabel(删除UIView并拖动新的UILabel)并从代码更改中删除:

从:

@IBOutlet var resultLabel: UIView!

@IBOutlet var resultLabel: UILabel!

然后将您的新UILabel与代码中的IBOutlet相关联。