0

我正在创建一个邮件屏幕,使用它在视觉上类似于 iOS 本机电子邮件应用程序。它看起来像这样(两个图像都在同一个屏幕上。第一个是上半部分,第二个是其余部分)。

在此处输入图像描述

在此处输入图像描述

不同之处在于我的邮件屏幕除了普通的ToCcSubjet字段外,还有更多自定义字段。

我正在使用 aUITableViewController来创建它。下面是一个创建单元格的代码片段(每个单元格几乎相同)。

- (UITableViewCell *)tokenTableView:(TITokenTableViewController *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = nil;
    self.tableView.frame = CGRectMake(0,0,320,320);
    UIView *contentSubview = nil;

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifierSubject];
        if(!self.txtSubject) {

            self.txtSubject = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
            self.txtSubject.frame = CGRectMake(10, cell.frame.size.height / 2 - self.txtSubject.font.lineHeight / 2, tableView.tableView.bounds.size.width, 30);

            self.txtSubject.placeholder = @"Subject";
            [self setupMailData:indexPath.row];
        }
    contentSubview = self.txtSubject;
}

说,我打开一个草稿。输入字段中的所有详细信息都已填写,并且没有更改任何内容,我点击发送,它使应用程序崩溃。我知道这是什么原因造成的。问题是通常在您向下滚动时会创建位于屏幕可视部分下方的单元格,对吗?但在这种情况下,如果我在不向下滚动的情况下发送它,但视口下方的那些单元格不存在,因此它会引发错误。

如果我打开草稿,向下滚动并点击发送,它工作正常。

我需要知道是否有办法一次创建所有这些单元格。甚至最初位于视口下方的单元格。不依赖于用户向下滚动。

我希望你对我的情况有所了解。任何人都可以提出解决方案吗?

谢谢你。

4

2 回答 2

0

使用 Storyboard,添加UITableViewController 并将 'Content' 设置为 StaticCells。然后,您可以在 Storyboard 中定义所有单元格及其内容。你甚至可以在你的 UITableViewController 子类中将东西连接到 IBOutlets,当 viewDidLoad 被触发时,它们都会在你身边......

使用 Storyboard 时,获取 ViewController 的代码如下所示:

[[UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil] instantiateInitialViewController];
于 2013-05-15T08:35:13.597 回答
0

遵循以下步骤:

  1. 取 uiscrollview 并设置你想要显示的滚动视图框架。
  2. 将uitableview作为uiscrollview的子视图
  3. 设置属性Scrolling Enabled= NO(取消选中 .xib 中的复选框)的 uitableview
  4. reloaddatauitableview的调用方法
  5. 设置滚动视图的表格视图框架和内容大小

    tblEmail.frame = CGRectMake(yourXPos, yourYPos, yourWidth, tblEmail.contentSize.height);
    scrollObj.contentSize = CGSizeMake(yourScrollWidth,tblEmail.contentSize.height+10);
    

所以,tableview 的高度等于它的 contentsize。因此,它一次创建所有单元格。并且设置滚动视图的内容大小等于表视图内容大小。所以,滚动功能就像 uitableview 滚动一样工作......

于 2013-05-15T05:47:41.683 回答