如果 UITableView 没有数据如何添加 UIImage 和 UILabel

Posted

技术标签:

【中文标题】如果 UITableView 没有数据如何添加 UIImage 和 UILabel【英文标题】:How to add UIImage and UILabel if UITableView has no data 【发布时间】:2017-06-13 12:24:39 【问题描述】:

我查看了很多答案,但要么只是 UILabel 要么 UIImage 不是两者兼而有之。所以在尝试实现它之后,我终于发现我们不能做两个tableView.backgroundView。这是我到目前为止所做的:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    
        let noDataLabel: UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: tableView.bounds.size.width, height: tableView.bounds.size.height))

let image = UIImage(named: "noData")
let noDataImage = UIImageView(image: image)

noDataImage.frame = CGRect(x: 0, y: 10, width: 20, height: 20)

if allData.count == 0 

noDataLabel.isHidden = false
noDataImage.isHidden = false

noDataLabel.text          = "No data added. Add new entry \nby pressing the add icon on top right."
noDataLabel.textColor     = UIColor.black
noDataLabel.numberOfLines = 3
noDataLabel.backgroundColor = UIColor.white
noDataLabel.textAlignment = .center

 //what to do from here           
            tableView.backgroundView  = noDataImage
            tableView.backgroundView  = noDataLabel

//end
                tableView.separatorStyle  = .none
                return 0;
            
            else 
                noDataLabel.backgroundColor = UIColor.clear
                noDataLabel.isHidden = true
                noDataImage.isHidden = true
                tableView.backgroundView  = nil
                return allData.count
            

我想显示一张图片,在该图片下方我想显示UILabel。我怎样才能做到这一点?

【问题讨论】:

我会将 tableView 放在“无数据”视图上方,并使 tableViews 背景透明。 你的意思是在 UIView 上我应该添加图像和标签,如果计数为零,那么我应该让表格的背景透明? 创建一个视图而不是分配给背景视图,下面的@arpit 已经回答了这个问题 【参考方案1】:

你需要用subviews你的imagelabel创建一个view

var backgroundView =UIView(frame: CGRectMake(0, 0, your_width, your_height))
backgroundView.addSubview(noDataImage)
backgroundView.addSubview(noDataLabel)

 tableView.backgroundView=backgroundView;

注意:noDataImagenoDataLabel的边框根据你的使用情况调整。

【讨论】:

【参考方案2】:
backgroundView Property

表格视图的背景视图。

声明

斯威夫特

var backgroundView: UIView?

目标-C

@property(nonatomic, readwrite, retain) UIView *backgroundView

讨论

表格视图的背景视图会自动调整大小以匹配表格视图的大小。此视图作为表格视图的子视图放置在所有单元格、页眉视图和页脚视图后面。

您必须将此属性设置为 nil 才能设置表格视图的背景颜色。

【讨论】:

以上是关于如果 UITableView 没有数据如何添加 UIImage 和 UILabel的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UITableView 单元格中添加标签和图像视图的数量

在 UITableView 下方添加 UIRefreshControl [重复]

如果 UITableView 没有条目,则显示警报

Swift3:如果为空则隐藏 UITableView

从核心数据中显示空的 UITableView 行

如何使用swift在ios中动态/编程添加多个UITableView? [关闭]