7881


`View`に縦線を引きたくて色々と調べていたのですが、やり方が分からず困っています。  
現在`TableView`の真ん中に縦線を引いて、左と右でセルを2分割したようなUIを作りたいのですが、どうすればよろしいでしょうか？Xcodeに線を引く機能などないですよね...？


CC BY-SA 3.0
2015-03-13T08:41:45.427
7878
2015-03-13T15:13:46.373
5210
question
objective-c uitableview
TableViewの真ん中に縦線を引く


カスタムセルにUIViewを2つ置いて、左ビューの右 or
右ビューの左に線を描画すればそれっぽい見た目にはできます（線を描画する位置をうまく調整すればUIViewを置かなくてもいけると思います）。

枠線描画処理

[code]

    // 右枠線を描画する
    - (void)drawRightBorder
    {
        CGRect bounds_ = self.bounds;
        CALayer *border = [CALayer layer];
        border.frame = CGRectMake((bounds_.size.width - 1.0f)
                                  , 0.0f
                                  , 1.0f
                                  , bounds_.size.height);
        border.backgroundColor = [UIColor blackColor].CGColor;
        [self.layer addSublayer:border];
    }
    
[/code]

カスタムセル

[code]

    - (void)drawCenterLine
    {
        // 今回は左ビューの右に描画
        [_leftView drawRightBorder];
    }
    
[/code]

テーブルビュー

[code]

    - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        CustomTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:CELL_IDENTIFIER
                                                                    forIndexPath:indexPath];    
        [cell drawCenterLine];
        return cell;
    }
    
[/code]

実行結果

![中心線を描画](https://i.stack.imgur.com/Qo6yi.png)

----- 追記 -----

こっちで大丈夫でした。

中心線描画処理

[code]

    // 中心線を描画する
    - (void)drawCenterLine
    {
        CGRect bounds_ = self.bounds;
        CALayer *border = [CALayer layer];
        border.frame = CGRectMake(((bounds_.size.width / 2) - 1.0f)
                                  , 0.0f
                                  , 1.0f
                                  , bounds_.size.height);
        border.backgroundColor = [UIColor blackColor].CGColor;
        [self.layer addSublayer:border];
    }
    
[/code]

テーブルビュー

[code]

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        // 線追加
        [_tableView drawCenterLine];
    }
    
[/code]


CC BY-SA 3.0
2015-03-13T12:18:16.880
7881
2015-03-13T12:31:54.670
2015-03-13T12:31:54.670
3516
3516
7878
answer


望まれてるUIがいまいちよくわからないのですが、単純に垂直な線を表現したいのであれば、幅が1ポイントのUIViewを追加して、背景色に線の色を設定してみてはどうでしょうか？


CC BY-SA 3.0
2015-03-13T15:13:46.373
7891
2015-03-13T15:13:46.373
7459
7878
answer