#ios #swift2 #popup #customization #alert
#iOS #swift2 #всплывающее окно #настройка #предупреждение
Вопрос:
** Я разработал свой собственный вид с текстом и изображениями.
Я хочу представить это как вид предупреждения или просто отобразить как окно
Как мне использовать .modalPresentationStyle как .Custom и достичь этого
Должен ли я использовать ViewController или просто отображать view напрямую
@IBAction func BtnClickFnc(sender: AnyObject)
{
let MsgBoxVar = MsgBoxCls()
MsgBoxVar.modalPresentationStyle = .Custom
MsgBoxVar.preferredContentSize = CGSizeMake(200, 400)
self.presentViewController(MsgBoxVar, animated: true, completion: nil)
}
class MsgBoxCls: UIViewController
{
override func viewDidLoad()
{
view.addSubview(NamVyuCls(frame: CGRectMake(50,50,200,200)))
}
}
class NamVyuCls: UIView
{
override public init(frame: CGRect)
{
super.init(frame: frame)
layer.borderWidth = 2
layer.borderColor = UIColor.darkGrayColor().CGColor
layer.cornerRadius = 10
// Code Todo
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Ответ №1:
var BgdVyuVar: UIView!
var NamVyuVar: NamVyuCls!
@IBAction func BtnKlkFnc(sender: AnyObject)
{
BgdVyuVar = UIView(frame: view.frame)
BgdVyuVar.backgroundColor = UIColor(red: 255/255, green: 255/255, blue: 225/255, alpha: 0.5)
BgdVyuVar.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.DsmVyuFnc)))
self.view.addSubview(BgdVyuVar)
NamVyuVar = NamVyuCls()
NamVyuVar.frame = CGRectMake(self.view.frame.width / 2 - 100,self.view.frame.height / 2 - 100,200,200)
self.view.addSubview(NamVyuVar)
UIView.animateWithDuration(0.5, delay: 0.1, options: .TransitionNone,
animations:
{
self.view.bringSubviewToFront(self.NamVyuVar)
},
completion: nil)
}
func DsmVyuFnc()
{
BgdVyuVar.removeFromSuperview()
NamVyuVar.removeFromSuperview()
}
Комментарии:
1. Ваша идея работает частично, я хочу, чтобы она находилась в центре, выделяла область снаружи серым цветом и отключала все остальные функции, как всплывающее окно. Также он дрожит, когда я щелкаю вне AlertView.
2. Чтобы сделать фон серым и отключить фон, создайте UIView. Установите для него цвет фона на blackColor, а для свойства alpha установите значение 0.7 и установите его рамку в рамку вашего основного представления. При отображении AlertView добавьте это UIView в качестве подвида к вашему MainView. Для выхода при щелчке снаружи добавьте UITapGestureRecognizer во вновь созданное представление размытия фона. При нажатии жестом удалите вид предупреждения