2015-04-22 3 views
1

У меня есть код ниже, чтобы размыть изображение из UIImageView. Затем он помещает это изображение в UIImageView. Прежде, чем эффект размытия будет применен клипами изображения и будет установлен на ScaleAspectFill, но как только эффект будет применен, он растянет изображение вместо этого. Где я иду не так?Blur UIImage not clipping (Swift)

Благодаря

let rectangle = UIImageView(frame: CGRectMake(xPosPix+100, yPosPix, widthPix, heightPix)) 

rectangle.contentMode = UIViewContentMode.ScaleAspectFill 
rectangle.frame = CGRectMake(xPosPix+100, yPosPix, widthPix, heightPix) 
rectangle.layer.opacity = opacity 
rectangle.layer.cornerRadius = cornerRadius 
rectangle.clipsToBounds = true 
self.view.addSubview(rectangle) 

var image = rectangle.image 
var imageToBlur = CIImage(image: image) 
var blurfilter = CIFilter(name: "CIGaussianBlur") 
blurfilter.setValue(imageToBlur, forKey: "inputImage") 
var resultImage = blurfilter.valueForKey("outputImage") as! CIImage 
var blurredImage = UIImage(CIImage: resultImage) 
rectangle.layer.cornerRadius = cornerRadius 
rectangle.clipsToBounds = true 
rectangle.image = blurredImage 
+0

Могу ли я спросить, почему вы не просто используете встроенный 'BlurEffectView'? – LinusGeffarth

+0

Я использую Parse.com, и мне нужно создать эффект, используя изображение с сайта Parse.com –

+0

Итак? Вы все равно можете использовать встроенный. Просто поместите BlurView на более высокий z. – LinusGeffarth

ответ

0

Я думаю, что вы, вероятно, хотите

rectangle.layer.masksToBounds = true; 

вместо второго

rectangle.clipsToBounds = true 

Кроме того, если вы используете layoutConstraints, они любят беспорядок угловых радиусов. Если это так, попробуйте установить свойство corner radius в layoutSubviews

+0

Похоже, что это часть 'ScaleAspectFill', которая вызывает проблему. Это растягивание/сжатие изображения, а не его установка на самую короткую сторону, как это обычно бывает. –

+0

Возможно, я ошибаюсь, но мне кажется, что вы ищете '.ScaleAspectFit' вместо' .ScaleAspectFill'? –

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