Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 标题部分对齐错误的视图(Swift 3)_Ios_Swift_Uitableview_Swift3 - Fatal编程技术网

Ios 标题部分对齐错误的视图(Swift 3)

Ios 标题部分对齐错误的视图(Swift 3),ios,swift,uitableview,swift3,Ios,Swift,Uitableview,Swift3,我不知道我错在哪里。文本始终从左对齐 func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { let sectionHeight:CGFloat = 40 let headerView = UIView(frame: CGRect(x: 0, y: 0, width: Helper.screenWidth, height: secti

我不知道我错在哪里。文本始终从左对齐

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let sectionHeight:CGFloat = 40
        let headerView = UIView(frame: CGRect(x: 0, y: 0, width: Helper.screenWidth, height: sectionHeight))
        headerView.backgroundColor = UIColor.init(fromHex: "F7F7F7")
        headerView.layer.borderColor = UIColor.init(fromHex: "F7F7F7").cgColor
        let titleLabel = UILabel()
        titleLabel.font = UIFont(name: "HelveticaNeue", size: 15)
        titleLabel.textColor = UIColor.darkGray
        titleLabel.text = "Dummy test Dummy test"
        titleLabel.textAlignment = NSTextAlignment.center
        titleLabel.sizeToFit()
        var frame = titleLabel.frame
        frame.origin.x = 15
        frame.origin.y = sectionHeight - frame.size.height - 7
        titleLabel.frame = frame
        headerView.addSubview(titleLabel)

        return headerView

PS:
screenWidth=UIScreen.main.bounds.size.width

    titleLabel.sizeToFit()
上一行根据其文本长度构成标签的框架。(您可以尝试更改标签的背景色以查看标签的宽度)。删除上面的行,您将获得首选的文本对齐方式

还可按如下所示设置标签框架:-

var frame = CGRect(x: 0, y: 0, width: Helper.screenWidth, height: headerView.frame.size.height)
frame.origin.x = 15
frame.origin.y = sectionHeight - frame.size.height - 7
titleLabel.frame = frame
上一行根据其文本长度构成标签的框架。(您可以尝试更改标签的背景色以查看标签的宽度)。删除上面的行,您将获得首选的文本对齐方式

还可按如下所示设置标签框架:-

var frame = CGRect(x: 0, y: 0, width: Helper.screenWidth, height: headerView.frame.size.height)
frame.origin.x = 15
frame.origin.y = sectionHeight - frame.size.height - 7
titleLabel.frame = frame

当您调用
sizeToFit
时,这将收缩/扩展标签以匹配文本的大小,因此此标签内的任何文本对齐方式都将过时


我想你的意思是
标题label.adjustsFontSizeToFitWidth=true
;如果文本太大而无法显示,现在将使用较小的字体

当您调用
sizeToFit
时,这将收缩/扩展标签以匹配文本的大小,因此此标签中的任何文本对齐方式都将过时

我想你的意思是
标题label.adjustsFontSizeToFitWidth=true
;如果文本太大而无法显示,现在将使用较小的字体

试试这个

 let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: Helper.screenWidth, height: sectionHeight))

 headerView.addSubview(titleLabel)

 titleLabel.center = headerView.center
试试这个

 let titleLabel = UILabel(frame: CGRect(x: 0, y: 0, width: Helper.screenWidth, height: sectionHeight))

 headerView.addSubview(titleLabel)

 titleLabel.center = headerView.center

文本在标签中居中,但标签在视图中不居中。 通过调用
titleLabel.sizeToFit()
,您调整了标签的大小以适应文本

试着做:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let sectionHeight:CGFloat = 40
        let headerView = UIView(frame: CGRect(x: 0, y: 0, width: Helper.screenWidth, height: sectionHeight))
        headerView.backgroundColor = UIColor.init(fromHex: "F7F7F7")
        headerView.layer.borderColor = UIColor.init(fromHex: "F7F7F7").cgColor
        let titleLabel = UILabel()
        titleLabel.font = UIFont(name: "HelveticaNeue", size: 15)
        titleLabel.textColor = UIColor.darkGray
        titleLabel.text = "Dummy test Dummy test"
        titleLabel.textAlignment = NSTextAlignment.center
        titleLabel.sizeToFit()

        titleLabel.frame = CGRect(x: 15.0, y: sectionHeight - frame.size.height - 7, width: headerView.size.width - 15.0*2.0, height: titleLabel.size.height)

        headerView.addSubview(titleLabel)

        return headerView
}

文本在标签中居中,但标签在视图中不居中。 通过调用
titleLabel.sizeToFit()
,您调整了标签的大小以适应文本

试着做:

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let sectionHeight:CGFloat = 40
        let headerView = UIView(frame: CGRect(x: 0, y: 0, width: Helper.screenWidth, height: sectionHeight))
        headerView.backgroundColor = UIColor.init(fromHex: "F7F7F7")
        headerView.layer.borderColor = UIColor.init(fromHex: "F7F7F7").cgColor
        let titleLabel = UILabel()
        titleLabel.font = UIFont(name: "HelveticaNeue", size: 15)
        titleLabel.textColor = UIColor.darkGray
        titleLabel.text = "Dummy test Dummy test"
        titleLabel.textAlignment = NSTextAlignment.center
        titleLabel.sizeToFit()

        titleLabel.frame = CGRect(x: 15.0, y: sectionHeight - frame.size.height - 7, width: headerView.size.width - 15.0*2.0, height: titleLabel.size.height)

        headerView.addSubview(titleLabel)

        return headerView
}

您是否尝试过titleLabel.textAlignment=NSTextAlignmentCenter?如果您仔细观察,您可以看到它如果我仔细观察,我会在NSTEXTALIGNENCE.CENTER中看到一个点您是否尝试过titleLabel.textAlignment=NSTEXTALIGNENCENTER?如果您仔细观察,您可以看到它如果我仔细观察,我会在NSTEXTALIGNING.center中看到一个点