2013-06-28 12 views
7

vorrei creare una linea di separazione come questa:Creare personalizzato UITableView linea di separazione

enter image description here

Qualche idea su come attuarlo? Ho provato a ottenere un'immagine della linea e l'utilizzo di UIAppearance oggetti proxy:

[[UITableView appearanceWhenContainedIn:[MyController class], nil] setSeparatorColor: 
[UIColor colorWithPatternImage:[UIImage imageNamed:@"line.png"]]]; 
[[UITableView appearanceWhenContainedIn:[MyController class], nil] setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine]; 

ma, in qualche modo, solo la linea nera viene reso.

risposta

9

si può provare qui di seguito:

UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)]; 
separator.backgroundColor = myColor; 
[cell.contentView addSubview:separator]; 

o

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"separator.png"]]; 
    imageView.frame = CGRectMake(0, 100, 320, 1); 
    [customCell.contentView addSubview:imageView]; 

    return customCell; 
} 
+1

Credo che la vostra ultima riga è: [cell.contentView addSubview: Seperator]; in ogni caso non funziona perché ho bisogno di una linea di separazione con due colori – Claus

+0

come aggiungere un'immagine invece? – null

+0

Penso che il secondo approccio funzioni meglio, ma ho dovuto impostare CGRectMake (0, 1, 320, 1) – Claus

9

@Tarek ho usato due istanza di oggetti per la creazione della doppia linea

UIView *separator = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 0.5, cell.contentView.frame.size.width, 1)]; 
UIView *separator2 = [[UIView alloc] initWithFrame:CGRectMake(0, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)]; 
separator.backgroundColor = [UIColor darkGrayColor]; 
separator2.backgroundColor = [UIColor blackColor]; 
[cell.contentView addSubview:separator]; 
[cell.contentView addSubview:separator2]; 

sembra buono! Complimenti per voi

+0

Il mio uomo di piacere :) – null

+1

thnks man il suo lavoro n mi ha aiutato – ashokdy

1

Swift 3

viewDidLoad:

//remove default separator line 
tableView.separatorStyle = .none 

tableView cella:

class MyCustomCell: UITableViewCell { 

    override func awakeFromNib() { 
     super.awakeFromNib() 

     let separator = UIView(frame: CGRect(x: 8, y: bounds.size.height - 0.5, width: bounds.size.width - 22, height: 1)) 
     separator.backgroundColor = UIColor.red 
     contentView.addSubview(separator) 
    } 
} 
Problemi correlati