将标签从其在 swift 中的位置向左移动
Move a label left from its position in swift
我在文本框中放置了一个标签,我想在点击此文本框后将此标签移到左侧。在下面的屏幕截图中,'hello' 是一个标签,我想在点击文本框后将其向左移动。
我写了下面的代码但是没有调用'textFieldDidBeginEditing'函数
@IBOutlet weak var lblhello: UILabel!
func textFieldDidBeginEditing(numtxt: UITextField!) { //delegate method
lblhello.frame = CGRectMake(98, 156, 42, 21)
}
我根据之前的评论假设您要手动指定帧大小,并且没有使用约束。
首先,您需要将 UITextFieldDelegate
添加到 viewController。
这是在您的 VC class:
开头这样做的
class yourViewControllerName: UIViewController, UITextFieldDelegate {
然后你想指定你的 UITextField
的代表,(最有可能在 viewDidLoad
)
yourTextFieldName.delegate = self
现在您可以使用 textFieldDelegate 函数了。你要找的可能是这个:
func textFieldDidBeginEditing(textField: UITextField) -> Bool {
lblhello.frame = CGRectMake(160, 200, 60, 40)
return true
}
如果一切设置正确,当用户开始编辑您的 UITextField
.
时,应该会更改 lblhello
的框架
我经常听到有人说这不起作用的一个常见问题。由 viewDidLoad()
中指定的标签引起。大多数时候你想在 viewDidLoad()
之前声明标签,否则像这样的函数无法访问它。
以防你之后想将它移回原来的位置。你做的几乎和你在 textFieldDidBeginEditing
中做的一样,除了你使用 textFieldDidEndEditing
代替。
但是,在旁注中。我确实建议习惯使用约束而不是为这样的事情设置框架。
我在文本框中放置了一个标签,我想在点击此文本框后将此标签移到左侧。在下面的屏幕截图中,'hello' 是一个标签,我想在点击文本框后将其向左移动。
我写了下面的代码但是没有调用'textFieldDidBeginEditing'函数
@IBOutlet weak var lblhello: UILabel!
func textFieldDidBeginEditing(numtxt: UITextField!) { //delegate method
lblhello.frame = CGRectMake(98, 156, 42, 21)
}
我根据之前的评论假设您要手动指定帧大小,并且没有使用约束。
首先,您需要将 UITextFieldDelegate
添加到 viewController。
这是在您的 VC class:
开头这样做的class yourViewControllerName: UIViewController, UITextFieldDelegate {
然后你想指定你的 UITextField
的代表,(最有可能在 viewDidLoad
)
yourTextFieldName.delegate = self
现在您可以使用 textFieldDelegate 函数了。你要找的可能是这个:
func textFieldDidBeginEditing(textField: UITextField) -> Bool {
lblhello.frame = CGRectMake(160, 200, 60, 40)
return true
}
如果一切设置正确,当用户开始编辑您的 UITextField
.
lblhello
的框架
我经常听到有人说这不起作用的一个常见问题。由 viewDidLoad()
中指定的标签引起。大多数时候你想在 viewDidLoad()
之前声明标签,否则像这样的函数无法访问它。
以防你之后想将它移回原来的位置。你做的几乎和你在 textFieldDidBeginEditing
中做的一样,除了你使用 textFieldDidEndEditing
代替。
但是,在旁注中。我确实建议习惯使用约束而不是为这样的事情设置框架。