UITableViewCell分隔符拒绝消失,NSTextAlignmentRight不生效

时间:2013-05-29 10:03:52

标签: ios objective-c uitableview

我在StoryBoard应用中使用UITableView。 改变颜色工作,方向不起作用,分隔线仍然出现。

    - (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"row320x44.png"]];
    cell.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"row320x44.png"]];
    cell.textLabel.backgroundColor = [UIColor clearColor];
    cell.detailTextLabel.backgroundColor = [UIColor clearColor];
    cell.textLabel.textColor = [UIColor whiteColor];
    cell.detailTextLabel.textColor = [UIColor whiteColor];
    cell.textLabel.textAlignment = NSTextAlignmentRight;
    cell.detailTextLabel.textAlignment = NSTextAlignmentRight;

    tableView.separatorColor = [UIColor clearColor];
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"row320x44.png"]];
}

我在viewDidLoad中尝试过:

self.tableViewWallMessages.delegate = self;
    self.tableViewWallMessages.separatorColor = [UIColor clearColor];
    self.tableViewWallMessages.separatorStyle = UITableViewCellSeparatorStyleNone;

仍然没有。 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

尝试以下方法。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    //set the separator colour in the table (menu)
    tableView.separatorColor = [UIColor clearColor];

    // Return the number of sections.
    return 1;
}

如果不起作用,请尝试在willDisplayCell中添加以下内容

cell.backgroundView = [[UIView alloc] initWithFrame:CGRectZero];

或者不使用故事板而是以编程方式创建它

<。>文件中的

@interface ViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
    UITableView *myTableView;
}
@property(nonatomic,strong)UITableView *myTableView;
<。>文件中的

- (void)viewDidLoad
{
    myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
    myTableView.dataSource = self;
    myTableView.delegate = self;
    [myTableView reloadData];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    //set the separator colour in the table (menu)
tableView.separatorColor = [UIColor clearColor];

    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //set the number of rows in the table (menu) as 6
    int noRows = 6;
    return noRows;

}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
//set the row height for the table (menu)
    return 100;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"Cell";

    //Create a title label in the table (menu)
    UILabel *titleLabel;


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

        /**TITLE LABEL SETUP**/
        //setup the title label
        titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(5, 54.0, 77, 33)];
        titleLabel.tag = TITLE_TAG;


        //add the title label to the cell
    [cell.contentView addSubview:titleLabel];



}
else
{
    //recall the existing cell content if it has already been created
    titleLabel = (UILabel*)[cell.contentView viewWithTag:TITLE_TAG];

}

//set the icon image as the image from the array


//set the menu item title from the array
titleLabel.text = @"some text";

//dont show the clicked cell as highlighted
cell.selectionStyle = UITableViewCellSelectionStyleNone;




    return cell;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //Code to execute when a cell is clicked on
}

答案 1 :(得分:2)

尝试在故事板文件中设置分隔符值“无”。

enter image description here

您的代码是正确的,只需确保您已将故事板连接到UITableView插座。