Ios Tableview-标题重叠详细信息(Swift)
附上的图片说明了一切。是否有任何方法可以防止标题重叠,例如在达到其限制时自动移动到第二行?通过编程/通过界面生成器 备注:我正在从firebase数据库中检索名称。这是一个投票页面,标题是展位名称 TableView控制器Ios Tableview-标题重叠详细信息(Swift),ios,swift,xcode,uitableview,Ios,Swift,Xcode,Uitableview,附上的图片说明了一切。是否有任何方法可以防止标题重叠,例如在达到其限制时自动移动到第二行?通过编程/通过界面生成器 备注:我正在从firebase数据库中检索名称。这是一个投票页面,标题是展位名称 TableView控制器 import UIKit import FirebaseDatabase var pitchData = [String]() var myIndex = 0 class PitchTableViewController: UITableViewController {
import UIKit
import FirebaseDatabase
var pitchData = [String]()
var myIndex = 0
class PitchTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.setNavigationBarHidden(false, animated: true)
self.navigationController?.navigationBar.titleTextAttributes = [ NSAttributedStringKey.font: UIFont(name: "Gotham Rounded", size: 19)!]
ref = Database.database().reference() //set the firebase reference
// Retrieve the post and listen for changes
databaseHandle = ref?.child("Afternoon13").queryOrdered(byChild: "BoothPosition").observe(.value, with: { (snapshot) in
pitchData.removeAll()
for child in snapshot.children {
let snap = child as! DataSnapshot
let key = snap.key
pitchData.append(key)
}
self.tableView.reloadData()
})
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return pitchData.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.font = UIFont(name: "Gotham Rounded", size: 20)
cell.detailTextLabel?.font = UIFont(name: "Gotham Rounded", size: 20)
cell.textLabel?.text = pitchData[indexPath.row]
switch (pitchData[indexPath.row]) {
case "ARC - attract, retain and cultivate":
let returnValue: Int = UserDefaults.standard.integer(forKey: "voting")
if (returnValue == 1)
{
cell.detailTextLabel?.text = "Completed ✓"
cell.detailTextLabel?.textColor = UIColor.green
cell.isUserInteractionEnabled = false
}
else {
cell.detailTextLabel?.text = "Vote ᐳ"
cell.detailTextLabel?.textColor = UIColor.blue
}
case "Anytime RCs":
let returnValue: Int = UserDefaults.standard.integer(forKey: "voting1")
if (returnValue == 1)
{
cell.detailTextLabel?.text = "Completed ✓"
cell.detailTextLabel?.textColor = UIColor.green
cell.isUserInteractionEnabled = false
}
else {
cell.detailTextLabel?.text = "Vote ᐳ"
cell.detailTextLabel?.textColor = UIColor.blue
}
您需要将行设置为0: 您可以直接从故事板进行设置: 也可以通过编程方式设置:
cell.textLabel?.numberOfLines = 0
cell.detailTextLabel?.numberOfLines = 0
希望这有帮助
编辑:TableView约束的演示
我在相邻的牢房里取了两个标签:
这是我对TableView的输出:
这首先是标签的约束:
这是标签2的限制条件:
是的,它对我有用,文本是多行的,没有文本剪切,请仔细检查你的约束
编辑以查看约束
选择标签,然后选择“显示尺寸检查器:
向下滚动可以看到给定的约束
编辑2
根据您的描述,您可以自动调整大小:
因此,您可以使用以下选项:
用于标签一
对于第二个标签:
由于您使用的是默认的
UITableViewCell
文本标签,这应该可以解决所有问题:
cell.textLabel.numberOfLines = 0;
cell.textLabel.lineBreakMode = .byWordWrapping;
您将UILabel属性numberOfLines=0
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
确保三件事:-
- 标题标签具有单元格内容视图的底部、顶部和前导约束以及投票>的水平间距,投票>按钮具有所有约束,如顶部、底部前导约束和标题的水平间距
- 标题标签已设置numberOfLines=0
- 使用UITableViewAutomaticDimension在heightForRowAt中设置单元格的动态高度
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return UITableViewAutomaticDimension }
// in view did load:
self.tableView.rowHeight = UITableViewAutomaticDimension
// cell row at indexpath
let reuseIdentifier = "cell"
var cell:UITableViewCell? =
tableView.dequeueReusableCell(withIdentifier: reuseIdentifier)
if (cell == nil)
{
cell = UITableViewCell(style: .value1,
reuseIdentifier: reuseIdentifier)
}
// your customize font, color... here
cell!.textLabel?.numberOfLines = 0;
cell!.detailTextLabel?.numberOfLines = 0;
return cell!
在tableview中,您使用了标签或文本字段。您是如何通过故事板或xib构建此视图的?哦,各位,让我添加我的代码。单元格/表格视图是动态的,因此所有操作都是通过xib/控制器完成的。我必须将此应用于详细文本标签吗?@Kinja是表格视图单元格中的每个标签。这将使文本分为两部分lines@Kinja您是否为标签提供了顶部、底部、前导和尾随约束?这会产生最佳效果。还可以显示您当前的约束,这将有助于我找到您。仅当两个标签的约束都已锁定时。你能为你自己这样做吗?我必须也将此应用于详细文本标签吗?如果你也希望详细文本标签有多行,那么是的。如果是这样,问题仍然存在。我的文本标签没有换行。现在看起来怎么样?我可以看到你的高度吗?在索引路径上?我如何设置我的投票>限制?@Kinja查看我的ans。这是一个可以切换到另一页的按钮OK,那有什么问题。。设置约束“顶部”、“底部”、“指向单元格内容视图”和标题标签的水平间距。确保已将标题标签“顶部”、“底部”和“指向单元格内容视图”设置为标题标签“顶部”、“底部”和“指向单元格内容视图”有关于如何执行约束的分步教程吗?很抱歉,我相对来说是个新手swift@Kinja请参阅“更新答案以获取设置按钮约束”步骤。很明显,它被锁定了,我可以设置它(即使我取消了“限制到边距”@Kinja有什么问题它对我有效尝试退出xcode并重新打开。你的投票按钮在哪里?哦,妈的,对不起,dixit,我可能说错了,它不是一个按钮,只是一个文本标签,可以转到下一页