2011-06-24 4 views
2
NSString *imgPath = [[jsonObjects objectAtIndex:indexPath.row] valueForKey:@"image"]; 
NSData *imgData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imgPath]]; 
UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(20, 7, 44, 44)]; 
img.image = [UIImage imageWithData:imgData]; 
img.layer.shadowColor = [UIColor blackColor]; 
img.layer.shadowOffset = CGSizeMake(1, 2); 
[cell addSubview:img]; 
[imgPath release]; 
[imgData release]; 
[img release]; 

При использовании этого кода, я получаю следующее предупреждение:Проблемы установка shadowColor собственности на UIImageView

Passing аргумента 1 из «setShadowColor:» от несовместимого типа указателя

код компилируется нормально и изображение отображается правильно, но без тени.

Что я делаю неправильно?

ответ

0

Измените строку

img.layer.shadowColor = [UIColor blackColor]; 

в

img.layer.shadowColor = [[UIColor blackColor] CGColor]; 

и добавить

img.layer.shadowOpacity = 1.0f; 
img.layer.shadowRadius = 8.0f; 
+0

Хорошо, теперь предупреждение ушло, но все равно тени. Может быть, мой подход не прав? – wstr

+0

Отредактировал мой ответ. – dasdom

+0

Простите, до сих пор не повезло. – wstr

6

Я предполагаю, что это немного поздно.

Это как Dasdom уже писал:

img.layer.shadowColor = [[UIColor blackColor] CGColor]; 
img.layer.shadowOpacity = 1.0f; 
img.layer.shadowRadius = 8.0f; 

Но вы должны убедиться, что ImageView не обрезается рамы:

img.clipsToBounds = NO; 

Michael

0

Я думаю, вы должны попробовать это:

sender.layer.shadowColor=[[UIColor yellowColor]CGColor]; 
sender.layer.shadowRadius=10; 
sender.layer.shadowOffset=CGSizeMake(1, 1); 
sender.layer.shadowOpacity=1; 

здесь отправитель UIButton type.

Смежные вопросы