2016-09-23 19 views
0

benötigen einzige Ansicht wie der beigefügten Entwurf in swift zu entwerfen und diese an all meiner collecitonview Zelle sichtbar sein, wie Sie diesen jemanden zu erreichen, hat Ahnung von diesemAnsicht mit Custom Design

enter image description here

+0

ich brauche dynamische Hintergrundfarbe für die oben erwähnte Ansicht aswell zu setzen, das ist y Ansicht bin mit u kann empfehlen nyway Bezierpfad Methode – vetrivel

+0

Bitte überprüfen [Wie man eine gute Frage stellen] (http://stackoverflow.com/tour) – pedrouan

+0

Ich habe noch nicht gewählt, aber die Leute hier werden Sie wahrscheinlich ablehnen, da Ihre Frage reproduziert werden kann, damit Sie eine zuverlässige Antwort bekommen können. – pedrouan

Antwort

2

ich versucht habe, es in einem Testprojekt. Das ist mein Weg:

Öffnen Sie Photoshop oder ein ähnliches Werkzeug und machen Sie ein Bild mit einem transluzenten Hintergrund.

enter image description here

Verwenden Sie den PS-Tools eine Figur, wie Sie es wollen ziehen.

enter image description here

speichern Sie sie als PNG. Öffne Xcode. Setzen Sie eine UIImageView in Ihre UIViewController. Legen Sie die PDF-Datei in den Ordner "Assets" und legen Sie dieses Bild als Bild für die UIImageView fest. Setze die Einschränkungen fest.

enter image description here

den folgenden Code in die Datei UIViewController.swift Set:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var testImageView: UIImageView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 


     let tap = UITapGestureRecognizer(target: self, action: #selector(doubleTapped)) 
     tap.numberOfTapsRequired = 1 
     view.addGestureRecognizer(tap) 
    } 

    func doubleTapped() { 

     let image = UIImage(named: "test") 
     testImageView.image = image?.maskWithColor(color: UIColor.blue) 
    } 


} 

extension UIImage { 
    func maskWithColor(color: UIColor) -> UIImage? { 

     let maskImage = self.cgImage 
     let width = self.size.width 
     let height = self.size.height 
     let bounds = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: width, height: height)) 

     let colorSpace = CGColorSpaceCreateDeviceRGB() 
     let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedLast.rawValue) 
     let bitmapContext = CGContext(data: nil, width: Int(width), height: Int(height), bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace, bitmapInfo: bitmapInfo.rawValue) //needs rawValue of bitmapInfo 

     bitmapContext!.clip(to: bounds, mask: maskImage!) 
     bitmapContext!.setFillColor(color.cgColor) 
     bitmapContext!.fill(bounds) 

     //is it nil? 
     if let cImage = bitmapContext!.makeImage() { 
      let coloredImage = UIImage(cgImage: cImage) 

      return coloredImage 

     } else { 
      return nil 
     } 
    } 
} 

Starten Sie die App und das Display berühren. Die Farbe wechselt von Schwarz zu Blau, sobald sie angetippt wurde. Jetzt sollten Sie alle Werkzeuge haben, um zu tun, was auch immer Sie wollen ... Der Code ist in Swift 3 Sprache.

enter image description hereenter image description here

Sie können diese UIImageView in Ihre UICollectionViewCell setzen und die UIColor mit der Funktion versehen gesetzt.

And here is a function to set a random UIColor.

+0

Danke, aber nur etwas Erntetechnik verwendet, um dies zu erreichen und es funktioniert jetzt gut – vetrivel