【发布时间】:2011-03-23 02:52:55
【问题描述】:
在用户编辑并向其添加数据之前,我有一个默认为空白的 UITableView。我想显示一个带有说明的图像,直到用户编辑它。
图片的大小非常适合导航栏和标签栏之间。
有没有办法以编程方式做到这一点?
【问题讨论】:
标签: iphone objective-c uitableview uiimageview
在用户编辑并向其添加数据之前,我有一个默认为空白的 UITableView。我想显示一个带有说明的图像,直到用户编辑它。
图片的大小非常适合导航栏和标签栏之间。
有没有办法以编程方式做到这一点?
【问题讨论】:
标签: iphone objective-c uitableview uiimageview
您可以使用removeFromSuperview 从超级视图中删除UITableView,然后添加您的UIImageView。
使用下面的代码:
-(void) NeedView:(BOOL) aIsImageView
{
if(aIsImageView)
{
[m_TableView removeFromSuperview];
[self.view addSubviews:m_ImageView];
}
else
{
[m_ImageView removeFromSuperview];
[self.view addSubviews:m_TableView];
}
}
【讨论】:
创建一个 UIView 将您的 UITableView 添加为子视图。使用您的说明图像创建一个 UIImageView 并将其添加为子视图。将指令 imageView 放在 tableView 后面。在 ViewWillAppear 中添加空表测试并根据该检查隐藏表。如果您允许用户删除行,您还必须在以下位置检查空表:
- (void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
// do delete
// get count of rows in UITableView and hide table if it's empty
}
...
【讨论】:
实现起来并不难,只要用指定的帧(可能是frame(0, 44, 320, 392))展示你想展示的图片即可。并检查表行(实际上是你用来在表中显示的数组的计数)如果它是非零的,则只显示图像,否则显示表。
试试这个概念,有任何问题或疑问都会回来。
【讨论】: