【问题标题】:xcode 5 UITableView always fills entire length of screenxcode 5 UITableView 总是填满整个屏幕长度
【发布时间】:2013-12-16 02:04:57
【问题描述】:

我不知道如何防止UITableView 占据整个屏幕。单元格类型是动态的,我想在它下面有一个表格视图和一个文本字段。这是我的故事板的样子:

我创建了一个自定义 UIViewController (CustomViewController)

尝试#1:我已经尝试过直接更改高度:

// CustomViewController.m
- (void)viewDidLoad
{
    [super viewDidLoad];

    self.tableView.dataSource = self;
    self.tableView.delegate = self;

    CGRect frame = [self.tableView frame];
    [self.tableView setFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, 40)];
}

尝试 #2:我想更改属性检查器中的 视图,使其无法缩放以适应

这总是最终结果的样子:

注意,在我添加信息的单元格(随机 1,...,随机 4)之后,它下面有空单元格。此外,屏幕截图中没有显示缺少文本字段,因为表格视图占据了整个屏幕。

非常感谢任何帮助。

谢谢!

【问题讨论】:

  • 尝试将 pin 添加到 TableView。编辑器 -> 引脚 -> 底部空间到 Superview。
  • 您可能知道,但提醒一下,当底部的文本字段成为第一响应者时,它会被键盘覆盖。另外,我认为@CaptJak 在这里有正确的想法。
  • 不是很难处理键盘问题:stackoverflow.com/a/7953036/2535467
  • @CaptJak,我做了一个别针,它完全按照我的意愿工作。谢谢!! :)
  • 我知道我应该发布答案...

标签: ios iphone objective-c xcode uitableview


【解决方案1】:

您应该添加一个 pin 以保留 TableView 底部之间的间距。 转到 Editor -> Pin -> Bottom Space to Superview,用于 tableView。

正如@danh 所说,一旦您触摸它,您还将覆盖 textField,因为键盘会弹出它。最简单的解决方案是在文本字段被触摸后移动视图:

在标题中:

CGRect *frame;

在实现中:

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{
    /* keyboard is visible, move views */
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.25f];
    frame = self.view.frame;
    frame.origin.y = 70;
    [self.view setFrame:frame];
    [UIView commitAnimations];

    return YES;
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    /* resign first responder, hide keyboard, move views */
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.25f];
    frame = self.view.frame;
    frame.origin.y = 70;
    [self.view setFrame:frame];
    [UIView commitAnimations];
}

【讨论】:

    【解决方案2】:

    编辑:此视图使用自动布局,因此设置框架将不起作用。您需要使用约束来调整表视图的大小,使其在父 UIViewController 的视图中达到您想要的大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      相关资源
      最近更新 更多