2016-09-23 1 views
0

Необходимо разработать единый вид как прикрепленном дизайн в быстрой и это будет видно на всей моей collecitonview клетки, как достичь этого никому иметь представление об этомВид с Нестандартная конструкция

enter image description here

+0

Мне нужно установить динамический цвет фона для указанного выше вида Aswell, вот у меня с помощью зрения можно предположить, у nyway с помощью метода Безье путь – vetrivel

+0

Пожалуйста, проверьте [Как разместить хороший вопрос] (Http://stackoverflow.com/tour) – pedrouan

+0

Я еще не проголосовал, но люди здесь могут проголосовать за вас, так как ваш вопрос должен быть воспроизведен, чтобы вы могли получить надежный ответ. – pedrouan

ответ

2

Я попытался это в тестовом проекте. Это мой путь:

Откройте Photoshop или аналогичный инструмент и сделайте снимок с полупрозрачным фоном.

enter image description here

Используйте Инструменты PS нарисовать рисунок так, как вы хотите.

enter image description here

сохранить его как PNG. Откройте Xcode. Поместите UIImageView в ваш UIViewController. Поместите PDF в папку «Активы» и установите это изображение как изображение для UIImageView. Установите противопоказания.

enter image description here

Установите следующий код в файл UIViewController.swift:

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 
     } 
    } 
} 

Запустите приложение и коснитесь дисплея. Цвет меняется с черного на синий, как только он постучал. Теперь у вас должны быть все инструменты, чтобы делать все, что вы хотите ... Код находится на языке Swift 3.

enter image description hereenter image description here

Вы можете установить этот UIImageView в свой UICollectionViewCell и установить UIColor с функцией предоставленной.

And here is a function to set a random UIColor.

+0

Спасибо, но только что использовал технику урожая, чтобы достичь этого, и теперь он отлично работает – vetrivel