【问题标题】:Converting from objective c to swift, what is self.activeKeyboardSize in objective c?从目标 c 转换为 swift,目标 c 中的 self.activeKeyboardSize 是什么?
【发布时间】: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


【解决方案1】:

给出的答案没有说明这些属性的声明位置

确实如此。 activeKeyboardSize 声明在类的顶层

CGSize activeKeyboardSize;

在 Swift 中

var activeKeyboardSize : CGSize = .zero

【讨论】:

  • 我花了大约一天的时间试图弄清楚这一点,如果这不能表明我对此有多新,但最终让它点击了。我的印象是它是视图控制器的某些属性。实际发生的情况是,它被声明为似乎仅在keyboardDidShow 函数中使用的类属性,并且keyboardDidHide 函数将其重置为零。我不知道为什么这对我来说如此难以理解。真诚地感谢 Vadian。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多