- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图将自定义 inputView 添加到 tableViewCell 输入字段,但是当我这样做时,我的应用程序中出现混合 View 并且应用程序崩溃。我看过以前的解决方案,但没有找到适合我的解决方案。你能帮我解决这个问题吗?
#pragma mark - TableView data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return self.taskQuestionObjects.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Do dequeue the custom cell here
TaskManagerQuestionAndAnswerTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:taskQuestionAnswerCellIdentifier];
TaskManagerQuestion *questionObject = self.taskQuestionObjects[indexPath.row];
cell.taskQuestionLabel.text = questionObject.title;
cell.taskAnswerTextField.inputView = [[[NSBundle mainBundle] loadNibNamed:@"TaskManagerPickerKeyboardViewController" owner:self options:nil] objectAtIndex:0];
return cell;
}
2014-09-12 12:26:19.615 TaskManager[24317:60b] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x167906e0 V:[UITableView:0x16bc6c00(417)]>",
"<NSLayoutConstraint:0x167932d0 V:[_UILayoutGuide:0x16792e00]-(0)-[UITableView:0x16bc6c00]>",
"<NSLayoutConstraint:0x16793360 V:[UITableView:0x16bc6c00]-(87)-[_UILayoutGuide:0x16792ff0]>",
"<_UILayoutSupportConstraint:0x167917d0 V:[_UILayoutGuide:0x16792e00(64)]>",
"<_UILayoutSupportConstraint:0x16791770 V:|-(0)-[_UILayoutGuide:0x16792e00] (Names: '|':UIView:0x16791280 )>",
"<_UILayoutSupportConstraint:0x16791890 V:[_UILayoutGuide:0x16792ff0(0)]>",
"<_UILayoutSupportConstraint:0x16791830 _UILayoutGuide:0x16792ff0.bottom == UIView:0x16791280.bottom>",
"<NSAutoresizingMaskLayoutConstraint:0x1677d2f0 h=--& v=--& V:[UIView:0x16791280(480)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x167906e0 V:[UITableView:0x16bc6c00(417)]>
Break on objc_exception_throw to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2014-09-12 12:26:38.039 TaskManager[24317:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't add self as subview'
*** First throw call stack:
(0x30228f83 0x3aaa3ccf 0x30228ec5 0x32a51535 0x32a514bf 0x32c19f71 0x32a57ac5 0x32c19879 0x32bd6b27 0x32af3d63 0x32af3b6d 0x32af3b05 0x32a45d59 0x326c362b 0x326bee3b 0x326beccd 0x326be6df 0x326be4ef 0x32a493e1 0x301f420b 0x301f36db 0x301f1ecf 0x3015cebf 0x3015cca3 0x350b6663 0x32aa914d 0xe85c1 0x3afb0ab7)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
最佳答案
inputView 属性定义为 (UIView*),而不是 (UIViewController*)。在将其分配给 inputView 时,您需要使用加载的 View Controller 的 View 属性,而不是 View Controller 本身。
我认为您还应该将加载的 View Controller 存储为属性,每次重新加载单元格时从 Nib 加载它对应用程序性能不利。虽然我上次在表格 View 中尝试 loadNibNamed 是在 iOS 4.0 中,但当时它似乎没有使用任何缓存。尝试这样的事情怎么样:
// class extension for the lazy loaded property
@interface MyTableViewController()
@property (readonly) UIViewController *inputVC;
@end
@implementation MyTableViewController {
UIViewController *_inputVC;
}
- (UIViewController *)inputVC {
if (_inputVC == nil) {
_inputVC = [[[NSBundle mainBundle] loadNibNamed:@"TaskManagerPickerKeyboardViewController" owner:nil options:nil] objectAtIndex:0];
}
return inputVC;
}
...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
cell.taskAnswerTextField.inputView = self.inputVC.view;
...
}
@end
关于iOS UITextField.inputView 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25774472/
在我的应用程序中,我需要在 UISearchBar 中创建自定义 inputView(键盘)。 我想做如下图。 第一张图是默认输入键盘(英文) 第二张图是自定义键盘。 当我点击默认(英文)键盘的 in
我有一个 UITextField我在哪里设置 inputView到自定义 View 。它的标准高度为 216。我想将其设置为 300 或屏幕的一半。 使用约束不是一个选项,因为它与默认的 216 冲突
我正在为我的应用程序制作自定义键盘,它与 UITextField 一起工作正常。但UISearchBar不支持inputView - (UIView *)inputView { if(self
我试图将自定义 inputView 添加到 tableViewCell 输入字段,但是当我这样做时,我的应用程序中出现混合 View 并且应用程序崩溃。我看过以前的解决方案,但没有找到适合我的解决方案
我正在尝试实现一个重写 UITextViews InputView 的 TableView 来为用户提供可搜索的 TableView,然后使用所选值填充 UITextField。 我搜索了相当多的内容
我想在 inputView 中设置默认日期值。我有: func createDatePickerDgeb1() { datePickergeb.datePickerMode = .date
所以我觉得我在这上面浪费了很多时间。我有一个 UIPickerView,它是通过带有 UITextField 的 InputView 以编程方式创建的。 但我的问题是,我需要这些 UIPickerVi
我制作了一个自定义键盘 View 并将其链接到 UITextField 的 inputView 属性。有没有办法在方向改变时改变自定义 inputView 的高度,并让框架像系统键盘一样平滑地改变动画
我正在尝试将 inputView 背景颜色从默认的灰色更改为其他颜色,但我没有看到任何解决方案。 我有 UIPickerView,它会在用户触摸 textField 时打开,它像键盘一样位于底部,如
UITextField 有一个 inputView可用于指定自定义键盘的属性。将此项清除为 nil 可提供默认键盘。 如果 UITextField 是第一响应者,则设置 inputView 不会发生任
我使用标准 UIPicker View 作为 iPhone 应用程序中文本字段的 inputView。当 View 以横向或纵向加载时,选择器的大小与相应键盘的大小相同。但是,当您在 View 内旋转
我正在寻找最直接的方法,以便当用户点击 UITableViewCell 时,会出现一个键盘。我想使用自定义键盘 (UIPickerView),并且我最好将单元格样式设置为 UITableViewCel
在 iOS 13 及更早的版本中,我们可以使用 UIDatePicker 作为 inputView 但现在呢? 我尝试使用 ios14 并在点击文本字段时没有附加任何内容。 var timePicke
我有文本字段的选择器和工具栏。 @IBOutlet var picker: UIDatePicker! @IBOutlet var toolbar: UIToolbar! @I
我试图将我的 UIPickerView 置于 inputView 内的 view 的中心 - 看起来像这样 输入 View 我的 View UIPickerView 问题是,无论我使用什么约束,它都不
在 iOS7 或更早版本中,我可以简单地设置 UIView 的 inputView 属性,以便在我的应用程序中实现自定义键盘。当设备旋转时,我只需将 inputView 的框架高度重置为横向或纵向键盘
我正在尝试使用 0 到 9 的数字输入自定义密码,并像这样随机放置一些空键: 这是我的简单 UICollectionViewCell class KeyboardKeyCollectionViewCe
我想用自定义键盘替换 UITextField 的默认键盘。因此,我使用 xib 文件创建了一个 UIViewController 的新子类(另一种方法,例如单独创建两个文件并设置文件所有者也不起作用)
我有一个在其输入 View 上显示表格 View 并在选择时返回值的文本字段我向表格 View 添加了一个搜索栏但问题是,当我点击搜索栏表格 View 时自动关闭并重新打开这意味着我什至无法单击搜索栏
我有 UITextField。我将 UIDatePicker 设置为此 UITextField 的 inputView UITextField *dateField = [[UITextField a
我是一名优秀的程序员,十分优秀!