Я занимаюсь разработкой приложения, в котором у меня есть imageView для добавления изображения к нему, используя свойство image из imageView.but, прежде чем добавить изображение в imageView, я хотел добавить эффект тени на правой сторонеизображения.я нашел много ответов в переполнении стека, где меня попросили вызвать код в методе drawInRect, что можно сделать, когда я рисую изображение в imageView. Но я добавляю изображение, чтобы придать ему богатый вид, и мои изображения имеютлучшее качество.
Может кто-нибудь предложить мне подход.
конечное изображение, которое я хотел, выглядит как
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellIdentifier=@"identifier";
[[ListDataSource sharedDataSource] loadFiles];
ShelfCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil) {
cell=[[[ShelfCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier] autorelease];
}
cell.backgroundColor=[UIColor greenColor];
if (indexPath.row%2==0) {
cell.imageView1.image=[[ListDataSource sharedDataSource] dataAtIndex:(indexPath.row*4)+0].titleImage;
cell.imageView2.image=[[ListDataSource sharedDataSource] dataAtIndex:(indexPath.row*4)+1].titleImage;
cell.imageView3.image=[[ListDataSource sharedDataSource] dataAtIndex:(indexPath.row*4)+2].titleImage;
cell.imageView4.image=[[ListDataSource sharedDataSource] dataAtIndex:(indexPath.row*4)+3].titleImage;
cell.imageView5.image=nil;
}else {
cell.rackImage.frame=CGRectMake(128, bookHeight-5, 570, 60);
cell.imageView1.image=nil;
cell.imageView2.image=[[ListDataSource sharedDataSource] dataAtIndex:(indexPath.row*4)+0].titleImage;
cell.imageView3.image=[[ListDataSource sharedDataSource] dataAtIndex:(indexPath.row*4)+1].titleImage;
cell.imageView4.image=[[ListDataSource sharedDataSource] dataAtIndex:(indexPath.row*4)+2].titleImage;
cell.imageView5.image=[[ListDataSource sharedDataSource] dataAtIndex:(indexPath.row*4)+3].titleImage;
}
return cell;
}
**ShelfCell.m**
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
imageView1=[[UIImageView alloc] init];
imageView1.frame=CGRectMake(10, 15, 110, 150);
imageView1.layer.masksToBounds=NO;
imageView1.layer.shadowRadius=5;
imageView1.layer.shadowOpacity=0.5;
imageView1.layer.shadowPath=[UIBezierPath bezierPathWithRect:imageView1.frame];
imageView1.layer.shadowColor = [[UIColor blackColor] CGColor];
imageView1.layer.shadowOffset = CGSizeMake(5,5);
[self.contentView addSubview:imageView1];
imageView2=[[UIImageView alloc] init];
imageView2.frame=CGRectMake(CGRectGetMaxX(imageView1.frame)+30, 15, 110, 150);
[self.contentView addSubview:imageView2];
imageView3=[[UIImageView alloc] init];
imageView3.frame=CGRectMake(CGRectGetMaxX(imageView2.frame)+30, 15, 110, 150);
[self.contentView addSubview:imageView3];
imageView4=[[UIImageView alloc] init];
imageView4.frame=CGRectMake(CGRectGetMaxX(imageView3.frame)+30, 15, 110, 150);
[self.contentView addSubview:imageView4];
imageView5=[[UIImageView alloc] init];
imageView5.frame=CGRectMake(CGRectGetMaxX(imageView4.frame)+30, 15, 110, 150);
[self.contentView addSubview:imageView5];
}
return self;
}
**ListDataSource**
-(id)dataAtIndex:(NSUInteger)index{
if (index>=[arrayOfDataDirectories count]) {
return nil;
}
InfoDataSource *info = [[InfoDataSource alloc] init];
[info loadDirectoryAtPath:[arrayOfDataDirectories objectAtIndex:index]];
[info autorelease];
return info;
}