Size: a a a

2021 October 17

JS

James Schultz in SwiftBook
Гайз, вопрос
Как UIView показывать "модально"
Или нужно вручную писать затемнитель и остальную область не кликабельной делать
источник

R

Regina in SwiftBook
Добрый день! Посоветуйте, пожалуйста курсы по IOS-разработке оффлайн. Кто нибудь имел опыт с курсом , например, Специалист? Прохожу обучение онлайн, но ещё бы хотела посещать курсы вживую. Есть ли смысл? У кого какой опыт?
источник

DM

Dima Murmachyov in SwiftBook
источник

EK

Evgeniy Kostin in SwiftBook
Приложение для Дракулы что ли пишете?)))
источник

EK

Evgeniy Kostin in SwiftBook
вот это поможет?
источник

EK

Evgeniy Kostin in SwiftBook
источник

JS

James Schultz in SwiftBook
Уже советуют вместо UIView использовать viewcontroller и открывать как попап или модально во фрейме
источник

EK

Evgeniy Kostin in SwiftBook
Пол Хатсон плохого не посоветует) Кратко и по делу.

https://youtu.be/SdIWZzl9h-w
источник

🅰Б

🅰️лександр Б.... in SwiftBook
extension UIViewController {

   /// Показывает view (экран блокировки интерфейса), например, на время загрузки данных по сети.
   /// - Parameters:
   ///   - state: true - показать, false - убрать темный экран
   ///   - upperView: перемещает view выше черного экрана во view-hierarchy
   ///   - withIndicator: показывать или нет ActivityIndicator
   ///   - indicatorColor: цвет ActivityIndicator
   ///   - bgColor: цвет фона view
   ///   - alpha: прозрачность фона
   ///   - completion: замыкание, срабатывающее при нажатии на темный view
   func activityIndicator(state: Bool,
                          upperView: UIView? = nil,
                          withIndicator: Bool = true,
                          indicatorColor: UIColor? = nil,
                          bgColor: UIColor = .black,
                          alpha: CGFloat = 0.5,
                          completion: (() -> Void)? = nil) {
       
       let viewTag = 9944
       
       if state {
           let blackView = UIView()
           view.addSubview(blackView)
           
           blackView.tag = viewTag
           blackView.backgroundColor = bgColor.withAlphaComponent(alpha)
           blackView.translatesAutoresizingMaskIntoConstraints = false
           
           blackView.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
           blackView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
           blackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
           blackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
           
           if withIndicator {
               let activityIndicator = UIActivityIndicatorView(style: .whiteLarge)
               
               if let color = indicatorColor {
                   activityIndicator.color = color
               }
               
               blackView.addSubview(activityIndicator)
               
               activityIndicator.startAnimating()
               activityIndicator.hidesWhenStopped = true
               
               activityIndicator.translatesAutoresizingMaskIntoConstraints = false
               
               activityIndicator.centerXAnchor.constraint(equalTo: blackView.centerXAnchor, constant: 0).isActive = true
               activityIndicator.centerYAnchor.constraint(equalTo: blackView.centerYAnchor, constant: 0).isActive = true
           }

           
           if let completion = completion {
               blackView.addTapGesture { [weak self] (_) in
                   self?.view.subviews.forEach { view in
                       if view.tag == viewTag {
                           view.removeFromSuperview()
                           completion()
                       }
                   }
               }
           }
           
           if let upperView = upperView {
               view.bringSubviewToFront(upperView)
           }
       } else {
           view.subviews.forEach { view in
               if view.tag == viewTag {
                   view.removeFromSuperview()
                   
                   if let completion = completion {
                       completion()
                   }
               }
           }
       }
   }
   
}
источник

🅰Б

🅰️лександр Б.... in SwiftBook
Нет смысла в офлайне учиться. Только время потеряешь. Почитай лучше книгу Усова, посомтри курсы на свифтбуке
источник

JS

James Schultz in SwiftBook
Сразу придумывай пет проджект и сразу пытайся делать😉
источник

JS

James Schultz in SwiftBook
Угар. Не, для охоты/страйкбола
источник

EK

Evgeniy Kostin in SwiftBook
Регина, лучше русскоязычного портала по Swift пока нет. Алексей вживую на стриме ответит на любой вопрос и разжует всегда любую домашку. И главное, научит правильно все оформлять.
источник

R

Regina in SwiftBook
Спасибо. А кто-нибудь делал проекты по книге Raywenderlich? В данный момент по ним занимаюсь и буду благодарна за  отзывы
источник

JS

James Schultz in SwiftBook
Ссыльку на стримы в студию)
источник

EK

Evgeniy Kostin in SwiftBook
ссылки появляются лично для тех, кто оплатил курс
источник

IS

Igor Smirnov in SwiftBook
Мое мнение - такой «попап» - плохое решение. Удобная зона для пользователя находится (в общем) справа снизу. А ты предлагаешь тянуть палец наверх
источник

JS

James Schultz in SwiftBook
Я передам ui/ux дезигнеру
источник

IS

Igor Smirnov in SwiftBook
источник

IS

Igor Smirnov in SwiftBook
Для экранов с бОльшим размером зелёная область правее
источник