2016-06-01 4 views
2

Я написал следующий код для загрузки и отображения изображения в ячейках таблицыView. Тем не менее, тень не появляется вообще, и я не могу понять, что не так.Тень не отображается под UIImageView (Swift)

cell.societyImage.setIndicatorStyle(UIActivityIndicatorViewStyle.White) 
cell.societyImage.setShowActivityIndicatorView(true) 
cell.societyImage.sd_setImageWithURL(NSURL(string: pictureURLs[objectIds[indexPath.row]]!),completed: { (image, error, cache, url) in     
    cell.societyImage.layer.shadowColor = UIColor(white: 0.7, alpha: 0.7).CGColor 
    cell.societyImage.layer.shadowOffset = CGSizeMake(3, 3) 
    cell.societyImage.layer.shadowOpacity = 0.4 
    cell.societyImage.layer.masksToBounds = true 
}) 

Любая помощь очень ценится!

+0

Добавить shadowradius и свойства clipsToBound ваш код будет решить проблему. –

ответ

5

О maskToBounds: если вы поставите это так, то вы не увидите тень, как это клипы подслой, где еще в ложь, что позволяет экстентов слой.

...  
cell.societyImage.sd_setImageWithURL(NSURL(string: pictureURLs[objectIds[indexPath.row]]!),completed: { (image, error, cache, url) in  
    dispatch_async(dispatch_get_main_queue()) { 
     let shadowPath = UIBezierPath(rect: cell.societyImage.bounds).CGPath 
     cell.societyImage.layer.shadowColor = UIColor(white: 0.7, alpha: 0.7).CGColor 
     cell.societyImage.layer.shadowOffset = CGSizeMake(3, 3) 
     cell.societyImage.layer.shadowOpacity = 0.4 
     cell.societyImage.layer.masksToBounds = false 
     cell.societyImage.layer.shadowPath = shadowPath.CGPath 
     cell.societyImage.layer.radius = 2 
    }) 
})   
+2

Спасибо, работает как шарм! –

1

Добавьте эту строку

cell.societyImage.layer.masksToBounds = false 

cell.societyImage.layer.shadowRadius = 2 
+0

сейчас работает, спасибо! –

0

Вы должны установить следующие параметры,

cell.societyImage.layer.shadowOffset = CGSizeMake(0, 0) 
cell.societyImage.layer.shadowColor = UIColor.blackColor().CGColor 
cell.societyImage.layer.shadowRadius = 4 
cell.societyImage.layer.shadowOpacity = 0.25 
cell.societyImage.layer.masksToBounds = false; 
cell.societyImage.clipsToBounds = false; 
Смежные вопросы