当table.width远大于view.width时,UITableViewCell分隔符insets不起作用

时间:2017-03-14 10:34:37

标签: ios objective-c uitableview separator insets

当table.width比iOS 10上的view.width大得多时,UITableViewCell分隔符插件不起作用,我没有在iOS版本低于iOS 10的设备上尝试它。

enter image description here

code is here on gist

3 个答案:

答案 0 :(得分:2)

您可以使用以下代码

UITableView中添加分隔符
 UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 3)];/// change size as you need.       
 separatorLineView.backgroundColor = [UIColor whiteColor];// you can also put image here
 [cell.contentView addSubview:separatorLineView];

并删除UITableView的默认分隔符。希望它有所帮助。

答案 1 :(得分:1)

_tableView.cellLayoutMarginsFollowReadableWidth = NO;

它在上面工作。

参考

iOS 9 UITableView separators insets (significant left margin)

Xcode 7 iOS 9 UITableViewCell Separator Inset issue

答案 2 :(得分:0)

有两种方法可以解决这个问题。

首先,您可以在单元格内容视图中添加分隔线视图。

#include <stdio.h>
#include <string.h>

int main ()
{
    char *input_word [100], *temp [100], *stop [4];
    int n = 0;

    printf("Enter a word: ");
    for( n = 0; n < 100; n++)
    { 
        scanf("%s", input_word[n]);
    }


    while (  strcmp ( stop [4], "STOP" ) != 0 )
    {
        *temp = input_word [0];
        for ( int j = 1; j <= n-1; j++)
        {
            *input_word [j-1] = *input_word [j];
        }

        input_word [n-1] = *temp;

        printf("%s", *input_word);
        printf("ay\n");

        printf("Type STOP to terminate: ");
        for ( n = 0; n < 4; n++ )
        {
            scanf("%s", stop[n] );
        }

    }

    return 0;


}

第二个是苹果提供的一个非常容易也只是添加这行代码,你声明你的tableview

 UIView* line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableview.frame.size.width, 3)];      
 line.backgroundColor = [UIColor whiteColor];

[cell.contentView addSubview:line];