2

viewDidLoadで使用して、テーブルビューからセパレーターの左マージンを削除しました。

self.tableView.layoutMargins = UIEdgeInsetsZero
self.tableView.separatorInset = UIEdgeInsetsZero

私のcellForRowAtIndexPathで:

cell.layoutMargins = UIEdgeInsetsZero

問題は、ヘッダー ビューとフッター ビューも移動されており、セルのコンテンツに合わせて配置したいことです。

ここに画像の説明を入力

willDisplayHeaderViewwillDisplayFooterViewのフレームを変更しようとしましたが、成功しませんでした。なにか提案を?ありがとう!

4

3 に答える 3

2

Memon Irshadが示唆するように、新しいラベルを作成しましたが、viewForHeaderInSection内ではなく、willDisplayHeaderViewで作成しました。このメソッドを使用している間、headerView のサイズを知ることができるからです

次に、TableViewHeader の元の textLabel を非表示にして、新しいフレーム ラベルを追加します。どう思いますか?改善点はありますか?

次のようになります。

override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int)
{
    let originView = view as! UITableViewHeaderFooterView

    let lbl = UILabel(frame: CGRectMake(15,originView.frame.height-30,originView.frame.size.width,20))

    // Setting up the new label
    lbl.numberOfLines = 0
    lbl.font  = Constants.Fonts.HeaderRow
    lbl.textColor = Constants.Colors.TextColored

    // Copying the original text content
    lbl.text = originView.textLabel?.text

    // Hidding the original label
    originView.textLabel?.hidden = true

    originView.addSubview(lbl)
}
于 2016-06-10T14:04:09.770 に答える
1

このコードを試して、ヘッダービューでカスタムラベルフレームを設定してください

    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let view = UIView()
    let lbl = UILabel(frame: CGRectMake(15,2,self.view.frame.size.width,20))
    lbl.textColor = UIColor.whiteColor()
    lbl.text = "SOPORTE"
    lbl.font = UIFont(name: "Helvetica Neue", size: 15)
    view.addSubview(lbl)

    return view
}
于 2016-06-10T10:51:36.477 に答える
1

ヘッダー/フッターは、セルのコンテンツに固執できません。私もそれに多くの時間を無駄にしました

セクションに行を追加し、ヘッダー/フッターのように使用する必要があります

于 2016-06-10T10:25:54.903 に答える