- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 Storyboard中创建了 UITextField
。并添加了它的约束。我想要 UITextField 左侧的搜索图标。添加搜索图标的代码如下:
self.searchTextField.leftView = searchIconImage;
self.searchTextField.leftViewMode = UITextFieldViewModeAlways;
[self.searchTextField addTarget:self
action:@selector(textFieldDidChange:)
forControlEvents:UIControlEventEditingChanged];
我的应用程序在 iOS8 上运行良好,但在 iOS7 上却崩溃了。错误如下:
Assertion failure in -[UITextField layoutSublayersOfLayer:], /SourceCache/UIKit/UIKit-2935.138/UIView.m:8794 2014-11-05 12:54:33.377 WattUp[1722:60b] Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. UITextField's implementation of -layoutSubviews needs to call super.'
最佳答案
所以我几天前也遇到了同样的错误。结果我试图在我的 UITextfield
子类中布局 subview ,在它们上设置属性,移动它们等等,但从未明确告诉 View 自行布局(即调用 [self layoutIfNeeded]
).
iOS 8 似乎强制 View 布局其所有 subview ,然后在其上配置约束。如果您使用自动布局,iOS 7 不会,并且需要您明确告诉 View 在您更改时重绘它们的 subview 。
在我的例子中,我对 UITextField
进行了子类化,并在旁边添加了一个标签。我通过向 UITextfield 添加约束来配置标签的框架。我可以在类里面调用的公共(public)方法之一是
- (void)setLabelText:(NSString *)newText{
self.sideLabel.text = newText;
}
当出现包含我的子类文本字段的 View Controller 时,这导致我的应用程序崩溃。通过添加 layoutIfNeeded
在 iOS7 和 iOS8 中一切正常。
- (void)setLabelText:(NSString *)newText{
self.sideLabel.text = newText;
[self layoutIfNeeded];
}
每次更改子类中的 View 的一部分时都需要调用它。这包括添加 subview 时的设置,更改 View 属性时的任何设置。在改变 View 的函数返回之前,在 View 上调用 layoutIfNeeded
。这似乎适用于一些标准的 UI 控件,包括 UITextfield、UITableView 和 UICollectionView,尽管我确信还有其他控件。我希望这已经足够清楚并有助于解决您的问题。
您遇到的错误不是很有用,甚至不适用于我的情况。虽然我收到了完全相同的错误,但我的 View 都没有实现 layoutSubviews
,因此都使用了 [super layoutSubviews]
方法。
关于ios - ios 中 UITextField 的自动布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26751801/
我是一个为 iOS 设备开发的新手。我在 InterfaceBuilder 上插入了一个 UITextField,并分配了代码: @interface ComposeViewController :
我有两个要用于登录的 UITextFields,一个用于用户名,一个用于密码。在我无法关闭第一个 UITextField 中的键盘之前,但我设法解决了这个问题,现在的问题是,一旦它关闭,我就无法单击另
在 tvOS 中编辑 UITextField 会显示一个新 View ,用户可以在其中输入文本,文本输入完成后,用户将返回到之前的 View 。但是,我发现当我从文本编辑器返回时,我编辑的文本没有显示
我在同一个 ViewController 上有三个 UITextfields(customerRequestTextField 、 fundsAvailableTextField 和 amountOw
我有一个要求,需要将内容从一个 UITextField 复制到同一屏幕上的另一个 UITextField 中。它就像一个别名,一旦用户开始输入,我就应该开始复制内容。我正在使用方法 (BOOL)tex
我有一个 ViewController、许多 UITextField(一个在另一个下面)和第一个 UITextField 右边的按钮。 按下按钮时,我希望在此下方显示另一个 UITextField(每
我有 3 个 UITextField(位置、地址、 zip )。我在 viewDidLoad 中隐藏了 2 个字段。 Addres1.hidden = YES; Zip1.hidden = YES;
在 Swift 中,我有一个 UITextField、textA 和一个 UITextField、textB。 textA 有时会被禁用,但 textB 始终启用。 textA 被禁用: textA.
我有 2 个 UITextFields。一个是美元,另一个是瑞尔。当我输入 textfield$ 时,我想自动查看 textfieldRiel 中的值。怎么做 ? 最佳答案 实现 uitextfiel
我想将一个 UITextField 属性转移到另一个 UITextField。我该怎么做? 这是我的完整场景: 我创建了一个自定义单元格,其中有一个 UITextField。 现在,当我在我的 UIT
我有一个 UITextField,我想将其长度限制为 4 个字符,这是它的代码: func textField(textField: UITextField, shouldChangeCharacte
@IBOutlet weak var labelLabel: UILabel @IBOutlet weak var textFieldField: UITextField @IBAction func
我在 xib 中定义了一个 UITableViewCell。这个 UITableViewCell 有一个 UITextField,叫做 itemText。此 UITableViewCell 也采用其他
我们的应用程序有几个 UITextField,用户可以在其中输入字母数字输入代码,例如“AA149873A”。 我们希望画外音将这些读为“A A 1 4 9 8 7 2 A”,但它却将数字读为数字:“
在我的 iOS 应用程序中,我有一个文本字段,其中有一个分配给它的 inputView 的选择器 View 。在 iOS 设备上,每当用户点击文本字段时,选择器 View 就会弹出。但是,当我将它作为
在 iOS 13 中,访问 UITextField 时发生崩溃_placeholderLabel.textColor 标签键。 用于应用占位符文本颜色的键。 [textfield setValue:[
我想复制iMessage结构的效果,点击工具栏中的UITextView,键盘就会出现。但我不知道如何在打字时显示文本。我认为当键盘出现时我应该将 UITextField 向上移动 class View
我有两个 UITextField,cDiseasePicker 和 optionalLMS。 我的cDiseasePicker使用UIPickerView作为输入,选项为“否”、“是,1VD”、“是,
当点击某个 CA 层时,我动态创建了两个 UITextField。我已将第一个文本字段设为第一响应者,我想要的是,当我在第一个文本字段中输入文本并按完成时,我希望第二个文本字段成为第一响应者。这就是我
我正在寻找 UITextField 的方法,它在我输入 UITextField 后产生效果。 我有一个方法来进行计算我使用一个按钮,但我不想使用,我希望你在我在 UITextField 中输入数字后运
我是一名优秀的程序员,十分优秀!