Я пытаюсь создать круглый угол в UIImageView только в одном указанном углу для верхней строки в UITableView и нижней строки.
В cellForRowAtIndexPath у меня есть:
NSURL *url = [[NSURL alloc] initWithString:user.image];
[cell.imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"noImageWoman.jpg"]];
[url release];
if (indexPath.row == 0)
cell.imageView.layer.mask = [Helper roundedCornerOnImage:cell.imageView onCorner:UIRectCornerTopLeft];
else if (indexPath.row == self.arrayIntrestedPeople.count - 1)
cell.imageView.layer.mask = [Helper roundedCornerOnImage:cell.imageView onCorner:UIRectCornerBottomLeft];
Мой метод roundedCornerOnImage:
+ (CAShapeLayer *) roundedCornerOnImage: (UIImageView *)imageView onCorner: (UIRectCorner)rectCorner
{
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds
byRoundingCorners:rectCorner
cornerRadii:CGSizeMake(10.0, 10.0)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.fillColor = [[UIColor whiteColor] CGColor];
maskLayer.backgroundColor = [[UIColor clearColor] CGColor];
maskLayer.frame = imageView.bounds;
maskLayer.path = maskPath.CGPath;
//Don't add masks to layers already in the hierarchy!
UIView *superview = [imageView superview];
[imageView removeFromSuperview];
imageView.layer.mask = maskLayer;
[superview addSubview:imageView];
return maskLayer;
}
Теперь, когда загружен UITableView, все изображения загружаются идеально, но не верхнее и не нижнее изображение, к которому я применил маску слоя.Это белый , изображение полностью белый .
Когда я прокручиваю UITableView, чтобы ячейки можно было воссоздать, изображения включали верхнее и нижнее изображение UITableView показано .
Почему это?
Мой код дыры в cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableVieww cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
GlobalProperties *gp = [GlobalProperties sharedGlobalProperties];
User *user = [self.arrayIntrestedPeople objectAtIndex:indexPath.row];
SizeableRoundedTableViewImage *cell = (SizeableRoundedTableViewImage *)[tableVieww dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[SizeableRoundedTableViewImage alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
NSURL *url = [[NSURL alloc] initWithString:user.image];
[cell.imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"noImageWoman.jpg"]];
[url release];
if (indexPath.row == 0)
cell.imageView.layer.mask = [Helper roundedCornerOnImage:cell.imageView onCorner:UIRectCornerTopLeft];
else if (indexPath.row == self.arrayIntrestedPeople.count - 1)
cell.imageView.layer.mask = [Helper roundedCornerOnImage:cell.imageView onCorner:UIRectCornerBottomLeft];
cell.textLabel.text = user.username;
return cell;
}