Я программирую в Swift. Я хочу замаскировать изображение с помощью CALayer и UIImage. Я создаю изображение маски. Созданное изображение маски является UIImage и отлично работает, когда я сам его рассматриваю. Но когда я использую его как маску, весь экран становится белым. Я подозреваю, что моя проблема заключается в настройке объекта CALayer. Буду признателен за вашу помощь. Благодаря!Маскирование изображения в Swift с использованием CALayer и UIImage
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var maskImageSize = CGSizeMake(self.imageView.frame.width, self.imageView.frame.height)
UIGraphicsBeginImageContextWithOptions(maskImageSize, false, 0.0)
var color = UIColor(white: 1.0, alpha: 1.0)
color.setFill()
var rect = CGRectMake(0, 0, self.imageView.frame.width, self.imageView.frame.height)
UIRectFill(rect)
color = UIColor(white: 0.0, alpha: 1.0)
color.setFill()
rect = CGRectMake((self.imageView.frame.width/2)-100, (self.imageView.frame.height/2)-100, 200, 200)
UIRectFill(rect)
var maskImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
var maskLayer = CALayer()
maskLayer.contents = maskImage
maskLayer.contentsRect = CGRectMake(0, 0, self.imageView.bounds.width, self.imageView.bounds.height)
self.imageView.image = UIImage(named: "pictobemasked.png")
self.imageView.layer.mask = maskLayer;
}
}
Спасибо за ваш ответ. Все три точки верны. У меня все еще есть проблема, которая должна быть связана с калибровкой и позиционированием объекта CALayer. Я новичок в этой теме. Я отправлю еще один комментарий, в котором будет изложена проблема и возможные проблемы с исправлением или более. Благодаря! – user2732722
Задайте новый вопрос! Если вы заметите меня с комментарием, я попытаюсь посмотреть на него. - Обратите внимание, что вы не допустили бы каких-либо ошибок, если бы вы прочитали главу моей книги о слоях: http://www.apeth.com/iOSBook/ch16.html. Все три пункта четко и решительно упомянуты. – matt
Спасибо за ссылку на книгу. Я признаю, что сначала мне нужно учиться основательно. У меня почти время, и поэтому я начал взламывать. Моя проблема в том, что я не знаю, как выровнять маску на исходном изображении. Я хочу показать изображение произвольного размера. Я генерирую содержимое маски программно так, чтобы он был того же размера, что и изображение. Это отверстие в середине маски - это просто тест. После того, как я получу этот запуск, я хочу иметь более сложную маску, которая должна покрыть весь образ. Я был бы признателен за любую помощь, чтобы получить право на выравнивание. Благодаря! – user2732722