рдПрдХ рд╕рдореВрд╣реАрдХреГрдд UITableView рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдЖрд╕рд╛рди рддрд░реАрдХрд╛

IOS рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ UITableView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЕрдХреНрд╕рд░ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдиреНрдпреВрдирддрдо рдкрд░, рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ рдФрд░ рд╡рд┐рднрд╛рдЬрдХреЛрдВ рдХрд╛ рд░рдВрдЧ рдмрджрд▓реЗрдВред рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ UITableView рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдореВрд╣реАрдХреГрдд UITableView рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рдореВрд╣ UITableView рдореЗрдВ рд╕реЗрд▓ рдХреЗ backgroundColor рдмрджрд▓рдХрд░ UITableView рдкрд░рд┐рдгрд╛рдо рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред рд╕рдорд╛рдзрд╛рди рд╕реЗрд▓ рдХреА backgroundView рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред рдЕрдХреНрд╕рд░, рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрд╡-рдкреНрд░рджрддреНрдд рдЪрд┐рддреНрд░ рдФрд░, рддрджрдиреБрд╕рд╛рд░, UIImageView ред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдзрд┐ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рд░рдВрдЧ рдФрд░ рд╕реЗрд▓ рд╕реАрдорд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП UIView рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдмрдирд╛рдпрд╛ред UIBezierPath рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж UIBezierPath рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддреБрдЪреНрдЫ рд╣реИ, рдпрд╣рд╛рдВ рд▓рдЧрднрдЧ рдкреВрд░рд╛ рдХреЛрдб рд╣реИ:

 - (void)drawRect:(CGRect)rect { CGRect bounds = CGRectInset(self.bounds, 0.5 / [UIScreen mainScreen].scale, 0.5 / [UIScreen mainScreen].scale); UIBezierPath *path; if (position == CellPositionSingle) { path = [UIBezierPath bezierPathWithRoundedRect:bounds cornerRadius:kCornerRadius]; } else if (position == CellPositionTop) { bounds.size.height += 1; path = [UIBezierPath bezierPathWithRoundedRect:bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(kCornerRadius, kCornerRadius)]; } else if (position == CellPositionBottom) { path = [UIBezierPath bezierPathWithRoundedRect:bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(kCornerRadius, kCornerRadius)]; } else { bounds.size.height += 1; path = [UIBezierPath bezierPathWithRect:bounds]; } [self.fillColor setFill]; [self.borderColor setStroke]; [path fill]; [path stroke]; } 


рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реИ, рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { CellBackgroundView *backgroundView = [CellBackgroundView new]; cell.backgroundView = backgroundView; backgroundView.backgroundColor = [UIColor clearColor]; backgroundView.borderColor = self.tableView.separatorColor; backgroundView.fillColor = [UIColor colorWithRed:1.0 green:1.0 blue:0.9 alpha:1.0]; int rowsInSection = [self tableView:tableView numberOfRowsInSection:indexPath.section]; if (rowsInSection == 1) { backgroundView.position = CellPositionSingle; } else { if (indexPath.row == 0) { backgroundView.position = CellPositionTop; } else if (indexPath.row == rowsInSection - 1) { backgroundView.position = CellPositionBottom; } else { backgroundView.position = CellPositionMiddle; } } } 


рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рдЫрд╡рд┐

рд╡реИрд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ - рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рд░рдВрдЧ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп [UIColor colorWithPatternImage:] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕реЗрд▓ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рд╡рдЯ рдФрд░ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреВрд░рд╛ рдХреЛрдб рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ gist.github.com/4062103

Source: https://habr.com/ru/post/In158533/


All Articles