2016-07-26 2 views
-1

Я пытаюсь воссоздать что-то вроде этого, где я вытягиваю изображение пользователя, а затем накладываю надпись «Изменить» сверху, но я не могу понять, как это сделать.Swift: Вставьте текстовую метку в круглое изображение

(я также хочу, чтобы иметь какое-то действие, связанное с этим ярлыком (например, непосредственно перейти к новой странице))

enter image description here

Мой вопрос: Я не могу показаться, чтобы выяснить, как наложение текстовую метку, но все равно держите изображение круглым, а нижняя часть изображения имеет непрозрачную метку.

код + Детали: У меня есть пользовательский UIView, который содержит Imageview- Когда я хочу, чтобы добавить изображение я называю следующий код:

self.userProfilePic.addImage((userImg).roundImage(), factorin: 0.95) 

В пользовательской точки зрения, это как изображение будет добавлено:

func addImage(imagein: UIImage, factorin:Float) 
{ 
    let img = imagein 
    imageScalingFactor = factorin 

    if imageView == nil 
    { 
     imageView = UIImageView(image: img) 
     imageView?.contentMode = .ScaleAspectFit 
     self.addSubview(imageView!) 
     self.sendSubviewToBack(imageView!) 
     imageView!.image = img 
    } 
} 

Это мой код для округления образ (который я не хочу трогать):

extension UIImage 
{ 
    func roundImage() -> UIImage 
    { 
     let newImage = self.copy() as! UIImage 
     let cornerRadius = self.size.height/2 
     UIGraphicsBeginImageContextWithOptions(self.size, false, 1.0) 
     let bounds = CGRect(origin: CGPointZero, size: self.size) 
     UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius).addClip() 
     newImage.drawInRect(bounds) 
     let finalImage = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return finalImage 
    } 
} 

Любая помощь будет оценена!

+1

imageView.layer.masksToBounds = true? –

+0

У вас есть доступ к PaintCode? –

+0

Я никогда не использовал paintcode - будет ли он работать в этом случае, учитывая, что мой образ пользователя не является статичным? – ABC

ответ

0

Попробуйте что-то вроде этой точки зрения иерархии

UIView 
! 
!--UIImageView 
!--UIButton 

так что вы берете «UIView», в том, что сначала добавить UIImageView, чем на нижней части вида изображения добавить UIButton. Теперь установите clipToBounds на «да». Теперь установите желание углового радиус слоя этого родительского вида, как следующий

parentView.layer.cornerRadius = parentVirew.frame.size.width; 

Помните, что вы должны сделать родительское представление квадратного размера, означает, что ширина высоту & должна быть таким же, для получения круговой маскировки. Отрегулируйте положение кнопки немного. Вы обязательно получите результат.