2017-10-09 16 views
0

Je travaille sur un projet dans lequel je charge mon searchBar à partir d'un fichier xib, où searchBar est constitué d'un UIBezierPath pour personnaliser l'arrière-plan. Je rencontre des problèmes avec la définition de cornerRadius sur la classe xib. Pour une raison quelconque, je ne l'obtiens pas même si je l'installe dans la classe. Mon code ci-dessous, l'aide apprécierait beaucoup de trouver le problème.Définir le rayon du coin sur un UIBezierPath qui se trouve sur un fichier xib

override func awakeFromNib() { 
    let image = getImageWithColor(color: UIColor.white, size: CGSize(width: 600, height: 27.5)) 
     self.searchBar.setSearchFieldBackgroundImage(image, for: .normal) 

    } 
public func getImageWithColor(color: UIColor, size: CGSize) -> UIImage { 
     let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height) 
     let path = UIBezierPath(roundedRect: rect, cornerRadius: 20) 
     UIGraphicsBeginImageContextWithOptions(size, false, 0) 
     color.setFill() 
     path.fill() 
     UIRectFill(rect) 
     let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()! 
     UIGraphicsEndImageContext() 
     return image 
    } 
+1

Peut-être avez-vous manqué la variable 'path' d'écrêtage. '[chemin addClip]'; – NeverHopeless

Répondre

0

Vous pouvez l'essayer de cette façon, cela fonctionne pour moi.

let path = UIBezierPath(roundedRect: self.bounds, 
    byRoundingCorners: .allCorners, 
    cornerRadius: CGSize(width: 10.0, height: 10.0)) 

Espérons que ça aide !!

+0

anyView ?? il n'y a pas de propriété dans ma classe xib comme ça – danu

+0

Il vous suffit de fournir la vue sur laquelle vous voulez mettre le rayon du coin sur @danu –