【问题标题】:How To Replace UITableView With Image?如何用图片替换 UITableView?
【发布时间】:2011-03-23 02:52:55
【问题描述】:

在用户编辑并向其添加数据之前,我有一个默认为空白的 UITableView。我想显示一个带有说明的图像,直到用户编辑它。

图片的大小非常适合导航栏和标签栏之间。

有没有办法以编程方式做到这一点?

【问题讨论】:

    标签: iphone objective-c uitableview uiimageview


    【解决方案1】:

    您可以使用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];
        }
    }
    

    【讨论】:

    • 那我该如何定位图像呢?我是否在 NIB 中创建另一个视图并在其中添加 UIImage?我认为以编程方式进行会更容易。
    • @Faisal :以编程方式进行会更容易,如果您卡在 btw 中,请告诉我。
    • m_TableView 是我正在使用的文件的名称吗?那么RoutineTableViewController 是为了RoutineTableViewController.h 吗?
    • @Faisal:在 RoutineTableViewController 的 .h 文件中声明 m_TableView 和 m_ImageView,例如。 UITableView* m_TableView;和 UIImageView* m_ImageView,然后在 RoutineTableViewController.m 的 init 函数中创建它们
    • 好的,所以目前我正在使用的表格视图属于 UITableViewController 类。那么我是否应该将其更改为 UIViewController,然后将表格视图和图像视图对象添加到其中?
    【解决方案2】:

    创建一个 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
        }
    ...
    

    【讨论】:

    • 好的,谢谢 Kirby,我认为您的方法会比 Jhaliya 的方法更好,因为如果用户删除了他们的表格条目,那么图像再次显示会很好。你能否提供更多关于你评论的细节?要获得计数,我是否只需使用布尔值并询问 index 或 [table count] = 0 吗?
    • 这取决于您的表是分组的还是普通的。如果它只是一个包含一个部分的普通表,您可以通过调用 numberOfRowsInSection 来从数据源中获取行数,其中部分为零。
    【解决方案3】:

    实现起来并不难,只要用指定的帧(可能是frame(0, 44, 320, 392))展示你想展示的图片即可。并检查表行(实际上是你用来在表中显示的数组的计数)如果它是非零的,则只显示图像,否则显示表。

    试试这个概念,有任何问题或疑问都会回来。

    【讨论】:

      猜你喜欢
      • 2013-03-03
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      相关资源
      最近更新 更多