iOS View 对象属性与操作方法

标签 ios objective-c xcode

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




只需要对 View 对象进行一些说明。如果我在这里提到的任何事情不清楚,请告诉我。

只是几个问题:

为诸如标签之类的对象创建属性究竟做了什么?

为什么我们不需要为我们创建的某些按钮创建属性?

为什么我们必须为某些 View 对象创建属性?我问这个是因为我创建了一个开关,但我想使用它的值发送到我的模型,但我必须创建一个属性才能使其工作。这与开关的getter和setter有关吗?

最佳答案

What does creating a property do exactly for an object such as a label?



当您说“创建属性”时,我假设您的意思是创建 IBOutlet View Controller 中的属性以引用相关标签。目的是允许您以编程方式与该标签进行交互(例如更改它显示的文本等)。如果您不打算与该标签进行交互(例如,它只是一个提示),那么没有 IBOutlet是需要的。但是如果您需要与它交互(例如,根据其他地方的一些其他用户输入更改它的值),那么您可能有一个 IBOutlet .

Why don't we need to create properties for certain buttons that we create?



您只需要创建IBOutlet您将以编程方式与之交互的那些对象的引用(例如,更改按钮上的文本,检索开关的值),否则您不需要 IBOutlet属性(property)。对于按钮,您可能有 IBAction ,或者如果使用 segues,您甚至可能不需要它。你经常不需要IBOutlet按钮的属性引用(但如果出于任何原因需要它,您可以拥有一个)。

但总之,你只需要创建IBOutlet您将在自己的代码中与之交互的那些控件的属性引用。

Why do we have to create properties for certain view objects? I ask this because I had created a switch but I wanted to use it's value to send to my model, but I had to create a property to make it work. Is this related to the switch's getter and setter?



如果您想访问 UISwitch 的状态从一些随机的方法,然后,是的,getter 方法会让你很容易做到这一点。并且通过定义一个属性,会为你合成getter方法。

另一方面,如果您有 IBAction与您的 UISwitch 的“值更改”事件相关联,您可以从 sender 访问它不需要其他属性的参数。
- (IBAction)changedSwitchValue:(id)sender
{
    UISwitch *switchControl = sender;

    if (switchControl.on)
        NSLog(@"Switch is on");
    else
        NSLog(@"Switch is off");
}

但是如果你想访问 on UISwitch 的属性(property)来自其他方法,具有 IBOutlet属性引用非常有用。

关于iOS View 对象属性与操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274337/

相关文章:

ios - 为什么从 FileManager 数据初始化的 UIImages 有错误的比例?

objective-c - Objective-C : How to fix aspect ratio of image (and not change to fit imageview frame)

ios - RestKit复杂而简单的JSON RKObjectMapping几乎可以工作,但是

xcode - 有什么方法可以只清除当前的Xcode项目,而不是Cocoapods依赖项?

ios - NavigationItem 中的 titleView 不考虑 iOS 11 中的框架高度

ios - 如何固定在 iOS 版谷歌地图上?

ios - 如何获取给定 NSDictionary 键的值的数据类型?

android - Djinni:我可以将接口(interface)定义为在所有环境中都可实现吗?

objective-c - dispatch_group_t - EXC_BAD_INSTRUCTION

xcode - 在 Xcode 6 OS X server 4 中创建机器人 - 存储库凭据问题