27832


[![Pic1](https://i.stack.imgur.com/tUibx.png)](https://i.stack.imgur.com/tUibx.png)  
[![Pic2](https://i.stack.imgur.com/SZ2WN.png)](https://i.stack.imgur.com/SZ2WN.png)

TableViewのSectionHeader部分に下線を表示したいと考えています。  
現在は上の画像のようになっています。  
設定画面と同じように線を表示することはできますか？

また各セクションの最後まで下線を引いて欲しいのですが、  
表示されていません。こちらもどのようにすると表示できますでしょうか。

[code]

    import UIKit
    
    class TableViewTest: UIViewController, UITableViewDataSource {
    
        @IBOutlet weak var myTable: UITableView!
    
        private let mySection: NSArray = ["Section1", "Section2"]
        private let myItem: NSArray = ["Item1","Item2","Item3","Item4","Item5"]
        private let myItem2: NSArray = ["Item6"]
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            if self.myTable.respondsToSelector(Selector("separatorInset")) {
                self.myTable.separatorInset = UIEdgeInsetsZero
            }
    
            if self.myTable.respondsToSelector(Selector("layoutMargins")) {
                self.myTable.layoutMargins = UIEdgeInsetsZero
            }
    
        }
    
        func numberOfSectionsInTableView(tableView: UITableView) -> Int {
            return mySection.count
        }
    
        func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
            return mySection[section] as? String
        }
    
        func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
            return UIView()
        }
    
        func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    
            if section == 0 {
                return myItem.count
            } else if section == 1 {
                return myItem2.count
            } else {
                return 0
            }
    
        }
    
        func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    
            let cell = tableView.dequeueReusableCellWithIdentifier("TableCell", forIndexPath: indexPath)
            let item = cell.viewWithTag(1) as! UILabel
            if cell.respondsToSelector(Selector("separatorInset")) {
                cell.separatorInset = UIEdgeInsetsZero;
            }
    
            if cell.respondsToSelector(Selector("preservesSuperviewLayoutMargins")) {
                cell.preservesSuperviewLayoutMargins = false;
            }
    
            if cell.respondsToSelector(Selector("layoutMargins")) {
                cell.layoutMargins = UIEdgeInsetsZero;
            }
            if indexPath.section == 0 {
                item.text = myItem[indexPath.row] as? String
            } else if indexPath.section == 1{
                item.text = myItem2[indexPath.row] as? String
            }
    
            return cell
    
        }
    
    }
    
[/code]


CC BY-SA 3.0
2016-07-22T03:20:22.397
27806
2016-07-24T04:32:57.233
2016-07-22T03:42:42.583
16765
16765
question
swift swift2 uitableview
TableViewのSectionHeader部分に線を表示したい


[UITableView Class
Reference](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/)
を参照すればわかりますが、`UITableView` は Content Cell だけでなく、Header Cell や Footer Cell
もカスタマイズすることができます。

また、「設定」アプリのような外観を実現したいだけであれば、`style` プロパティに `.Grouped`
を指定するだけでいいです。セクションの下線も引かれます。

この設定は StoryBoard からも行えます。

[![styleの設定方法](https://i.stack.imgur.com/Ms8ec.png)](https://i.stack.imgur.com/Ms8ec.png)


CC BY-SA 3.0
2016-07-24T04:32:57.233
27832
2016-07-24T04:32:57.233
5337
27806
answer