IOS Swift3 как удалить пользовательский UIView случайным образом

Я создаю приложение iOS в swift 3, где я создаю динамические UIViews. Мне нужно удалить пользовательский просмотр случайным образом. Пожалуйста, помогите мне, я застрял с этим в течение долгого времени. Заранее спасибо

class ViewController: UIViewController { var myView: subView! var y : CGFloat! @IBOutlet weak var addButton: UIButton! override func viewDidLoad() { y = 1 super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } func cancelbutton(_ sender: UIButton) { myView.removeFromSuperview() } @IBAction func buttonAction(_ sender: Any) { y = y + 110 myView = subView(frame: CGRect(x: 80, y: y, width: 300, height: 100)) myView.backgroundColor = UIColor.green myView.actionButton.addTarget(self, action: (#selector(cancelbutton(_:))), for: UIControlEvents.touchUpInside) self.view.addSubview(myView) } } 

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Как вы можете видеть в приведенном выше изображении, когда я нажимаю «Закрыть», SubView (custome View) закрывается, но там, где MyView с зеленым цветом не идет и остается там. Кто-то, пожалуйста, помогите ………

 required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) Bundle.main.loadNibNamed("subView",owner: self, options:nil) self.addSubview(self.views) Bundle.main.loadNibNamed("subView",owner: self, options:nil) self.addSubview(self.views) } override init(frame: CGRect) { super.init(frame: frame) Bundle.main.loadNibNamed("subView", owner: self, options: nil) views.frame = bounds self.addSubview(self.views) } @IBAction func buttonAction(_ sender: Any) { views.removeFromSuperview() } 

3 Solutions collect form web for “IOS Swift3 как удалить пользовательский UIView случайным образом”

То, что вы делаете неправильно, заключается в том, что вы добавляете несколько представлений subView, которые вы выбрали не удалять. Пожалуйста, измените свой код, как показано ниже. Дело в том, что всякий раз, когда вы добавите новый subView вы также установите его значение тега и когда вы выберите представление, чтобы удалить его значение тега и поместите оператор if в значение этого тега.

 class ViewController: UIViewController { var myView: subView! var y : CGFloat! var tag : Int = 0 @IBOutlet weak var addButton: UIButton! override func viewDidLoad() { y = 1 super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } func cancelbutton(_ sender: UIButton) { let selectViewTagValue : Int = sender.tag /// save the selected view tag value for object in self.view.subviews { if ((object is subView) && object.tag == selectViewTagValue) { object.removeFromSuperview() } } } @IBAction func buttonAction(_ sender: Any) { y = y + 110 myView = subView(frame: CGRect(x: 80, y: y, width: 300, height: 100)) myView.tag = tag myView.actionButton.tag = tag tag = tag + 1 myView.backgroundColor = UIColor.green myView.actionButton.addTarget(self, action: (#selector(cancelbutton(_:))), for: UIControlEvents.touchUpInside) self.view.addSubview(myView) } 

Мне удалось устранить проблему с удалением, но в настоящее время я не могу переместить позиции таможни, как показано на рисунке ниже. Пожалуйста, помогите мне в этом.

введите описание изображения здесь введите описание изображения здесь

Попробуйте изменить действие отмены следующим образом:

 func cancelbutton(_ sender: UIButton) { if let myView = sender.superview { myView.removeFromSuperview() } } 

Просто удалите представление контейнера кнопки, а не глобальный myView.

  • UIView: как «перезагрузить» преобразования. CGAffineTransformScale не работает, как я ожидал бы
  • Расширение UIView как UILabel внутри растет
  • Добавьте только верхнюю границу в UIView с Quartzcore / layer?
  • отменить UIView animateWithDuration до завершения
  • Когда я могу активировать / деактивировать ограничения макета?
  • Обработка строки состояния входящего вызова с помощью пользовательской модальной презентации
  • Как узнать, видимо ли представление UIViewController
  • Добавление внутренней тени к вершине UIView
  • Границы и размер рамки в viewDidLoad
  • iOS изменяет время выполнения представления subview
  • Как подклассифицировать UINavigationController с пользовательским заголовком или UINavigationBar?
  • Interesting Posts

    Xamarin Forms iOS – PickerView с выбором нескольких строк

    Взаимодействие с телефоном на iPhone

    Получить текст в строке поиска

    Универсальные ссылки, не работающие с WKWebView

    Проблема с несоответствием типа при добавлении в массив coredata

    ERROR ITMS-90085: «Никаких архитектур в двоичном формате. Lipo не удалось обнаружить какие-либо архитектуры в исполняемом пакете ».

    очистить журналы, созданные NSlog из консоли по коду

    AFNetworking 3.0 Данные не могут быть прочитаны, потому что они не в правильном формате

    как установить цвет фона представления с помощью точного гекса с помощью интерфейса?

    Высота изменения UILabel, анимация расширяется из центра

    Перекрытие отображения содержимого UITableViewCell

    CoreBluetooth для маяков

    отправить сообщение с помощью quickblox

    Gnerate pdf из html с помощью phonegap и плагина IOS

    iOS: удаление файла в .DocumentDirectory с помощью Swift2

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.