【发布时间】:2020-04-18 12:36:30
【问题描述】:
我一直在 swift 中从事一个项目,我在目标 c 中找到了一个完美地满足我想要的答案。 mig70 在Resize and move UITableViewCell smoothly without dismissing keyboard 的帖子中回答了我一直在使用的解决方案。我已经将其中的大部分转换为 swift,但部分答案使用了 self.activeKeyboardSize 属性。
我似乎在处理两段代码。这是第一个:
- (void) keyboardDidHide:(NSNotification *)notification {
if (self.tableView.contentInset.bottom != 0)
[UIView animateWithDuration:0.5 animations:^ {self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);}];
self.activeKeyboardSize = CGSizeZero; }
这是第二个
- (void) keyboardDidShow:(NSNotification*)notification {
NSDictionary* info = [notification userInfo];
self.activeKeyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
CGFloat tableViewBottom = self.tableView.frame.origin.y + self.tableView.frame.size.height;
CGFloat keyboardTop = self.view.frame.size.height - self.activeKeyboardSize.height;
CGFloat coveringVerticalSpace = tableViewBottom - keyboardTop;
if (coveringVerticalSpace <= 0)
return;
TableViewScrollDirection scrollDirection = [self scrollToKeepEditingCellVisibleAboveVerticalPoint:self.tableView.frame.size.height - coveringVerticalSpace - UI_MARGIN_DEFAULT anchorsToVerticalPoint:NO];
if (scrollDirection == TableViewScrollUp)
self.textControlCellHadToMoveUpToBeVisibleOverKeyboard = YES;}
给出的答案没有说明这些属性在哪里声明或它们是如何工作的。
我在 swift 或 Objective c 中找不到任何可以让我主动更改键盘大小的东西,如演示的那样。这让我觉得这是一个在扩展中添加的属性。我如何才能获得对答案中演示的属性的访问权限?
谢谢!
【问题讨论】:
-
如果您发布一些代码,您可能会更多地关注这个问题。
-
self.activeKeyboardSize 只是作者创建的一个属性
标签: objective-c swift