
Виталий
12.08.2017
12:57:36

Vladimir
12.08.2017
12:58:01

Виталий
12.08.2017
12:58:28

Vladimir
12.08.2017
12:59:52

Google

Ilya
12.08.2017
12:59:56

Виталий
12.08.2017
13:00:26

Vladimir
12.08.2017
13:01:21

Ivan
12.08.2017
13:01:58

Виталий
12.08.2017
13:02:35

Ilya
12.08.2017
13:03:42
это тебе
Благодарю. Это я видел все, хотя не обратил особого внимания на preferredStatusBarUpdateAnimation. Но в любом случае как связать это со скролом?

Виталий
12.08.2017
13:05:09

Ivan
12.08.2017
13:05:33

Vladimir
12.08.2017
13:05:40

Ilya
12.08.2017
13:05:41

Виталий
12.08.2017
13:06:06

Ilya
12.08.2017
13:08:25
С красным статусбаром, конечно, не очень смотрится

Google

Ilya
12.08.2017
13:09:11
он еще и вниз тянется какого-то хера

Виталий
12.08.2017
13:09:49
мне че то кажется это какой то не очень разрешенный метод

Ilya
12.08.2017
13:10:15

Vitaliy
12.08.2017
13:10:21
Для похожей анимации с гамбургером делали довольно просто:
– во время действия делаем скриншот области
– статус бар прячем и подставляем заскриненный статус бар во вью
– потом уже анимируем эту вью

Виталий
12.08.2017
13:10:26

Ilya
12.08.2017
13:10:52

Vitaliy
12.08.2017
13:11:33
Я не знал, что есть отдельные методы анимации статус бара – но это проверенный метод точно пройдёт. Главное вовремя менять настройку приложения Показать статус бар/спрятать

Ilya
12.08.2017
13:11:37
Но вроде как я заметил, что что часы идут и заряд меняется даже при анимации

Виталий
12.08.2017
13:11:47

Vitaliy
12.08.2017
13:11:53
Запусти таймер и меняй вручную ?
можешь еще палочек к сигналу подрисовать

Ilya
12.08.2017
13:12:20
а заряд?

Vitaliy
12.08.2017
13:12:35

Ivan
12.08.2017
13:12:53
Думаю имелось в виду делать скриншот по таймеру
Тогда и заряд и время

Ilya
12.08.2017
13:13:44
ну как вариант. надо подумать про целесообразность

Vitaliy
12.08.2017
13:13:56
Да не на счет времени я шучу, конечно. Хотя никто не мешает сохранить нынешнее время до анимации, нарисовать прямоугольник с лейблом и там самому время инкрементить. Хотя имхо, это уже садо мазо

david
12.08.2017
13:15:57
костыльно звучит

Ilya
12.08.2017
13:16:06
Еще, если слухи верны про iphone 8, то придется отдельно колдовать для него статус бар

Google

Vitaliy
12.08.2017
13:16:51

Ilya
12.08.2017
14:11:30
Получается, что к статусбару можно получить доступ и сдвигать фрейм как захочется и без скриншотов
типа UIWindow *statusBarWindow = (UIWindow *)[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"];
Или это не законно

Виталий
12.08.2017
14:14:42

Ilya
12.08.2017
14:15:37

Виталий
12.08.2017
14:16:08
ну этож приватное апи по сути
к тому же это не слишком надежно
внутренняя реализация может измениться в любой версии

Ilya
12.08.2017
14:18:28
по факту измениться может все что угодно и в любой момент
Насколько я понял, чтобы сделать скриншот, нам также это окно нужно

Виталий
12.08.2017
14:20:56
документированное апи не меняется обычно без обратной совместимости

Ilya
12.08.2017
14:21:21

Виталий
12.08.2017
14:21:54
а тут использование недокументированных хаков, доступ к кишкам практически, я бы не рекомендовал, есть риск и ревью не пройти

Vitaliy
12.08.2017
14:22:29
Ты получаешь valueForKey:"" статус бара – это шиза, но может пропустят. Если так работает – я бы дальше не пробовал
Или заморочиться со скриншотом, выделить область, её подставить вместо нынешнего статус бара, сам статус бар спрятать и работать со вьюхой.

Ilya
12.08.2017
14:24:51
cо скрином тоже тонкая ситауция. Это тоже можно расценить как обман пользователя. Он подключил зарядку, а ничего не поменялось, время изменилось, а опять же ничего не поменялось.
Пользователь же виноватым будет считать айфон, а не разработчика

Vitaliy
12.08.2017
14:25:27
Поэтому я и предлагаю отправлять на ревью, а там уже проблемы решать по мере их поступления

Google

Vitaliy
12.08.2017
14:25:49
Если откажут – ты ничего не потеряешь в любом случае

Ilya
12.08.2017
14:26:22
может и так. главное, чтобы заказчик остался доволен

Виталий
12.08.2017
14:26:36

Ilya
12.08.2017
14:27:21

Виталий
12.08.2017
14:28:02
использовать снапшоты в транзишнах и анимациях это нормальная практика

Admin
ERROR: S client not available

Виталий
12.08.2017
14:28:35
отпустил палец и все обновилось
статус бар в свободном полете тоже так себе зрелище))

Ilya
12.08.2017
14:30:48
по большому счету мне не нужно один в один как в снэпчате. Тот же стандартный сдвиг, но чтобы он был привязан к скролу

david
13.08.2017
12:44:30
Можно как то вырубить userInteractions у UIView, не выключая при этом тапы?

Vlad
13.08.2017
13:01:08
Нет!

Eduard
13.08.2017
13:32:30
есть уроки/лайфхаки/теманямагия что бы узнать, как будет выглядеть UI если все прописывать через код?

Filipp
13.08.2017
13:50:37
Playground

Виталий
13.08.2017
14:02:20
Cmd+R

Filipp
13.08.2017
14:07:22
)

Eduard
13.08.2017
14:08:14
Джокер комп и время не жалеет)

Ivan
13.08.2017
14:11:59

Eduard
13.08.2017
14:13:43
ну да, в принципе верное
уже как-то и глупо вопрос выглядит

stonepig
13.08.2017
15:43:06
в чем разница между precondition и assert? только в том, что если precondition == false, то приложение упадет, а при assert - нет?

Google

stonepig
13.08.2017
15:43:36
в свифте


Olexii
13.08.2017
16:02:56
/// Checks a necessary condition for making forward progress.
///
/// Use this function to detect conditions that must prevent the program from
/// proceeding, even in shipping code.
///
/// * In playgrounds and -Onone builds (the default for Xcode's Debug
/// configuration): If condition evaluates to false, stop program
/// execution in a debuggable state after printing message.
///
/// * In -O builds (the default for Xcode's Release configuration): If
/// condition evaluates to false, stop program execution.
///
/// * In -Ounchecked builds, condition is not evaluated, but the optimizer
/// may assume that it *always* evaluates to true. Failure to satisfy that
/// assumption is a serious programming error.
///
/// - Parameters:
/// - condition: The condition to test. condition is not evaluated in
/// -Ounchecked builds.
/// - message: A string to print if condition is evaluated to false in a
/// playground or -Onone build. The default is an empty string.
/// - file: The file name to print with message if the precondition fails.
/// The default is the file where precondition(_:_:file:line:) is
/// called.
/// - line: The line number to print along with message if the assertion
/// fails. The default is the line number where
/// precondition(_:_:file:line:) is called.


Валерий
13.08.2017
17:19:04
/

Misha
13.08.2017
18:00:48
Извиняюсь за глупый вопрос

-_-
13.08.2017
18:57:16
Вообще ты тут не очень правильно делаешь (не вижу в коде никакого показа скачанного изображения или вроде того)
Но утечки не будет, так как захватывать нечего (у тебя там нилы)

Misha
13.08.2017
19:02:14

-_-
13.08.2017
19:02:45
Хех, ну тогда вообще все плохо. Аламофайр явно не синхронно работает же

Misha
13.08.2017
19:02:55
func loadImageUsingCacheWith(urlString: String) throws -> UIImage

-_-
13.08.2017
19:03:45
Интересно, зачем они тогда синхронной функции блок влепили

Misha
13.08.2017
19:04:39
тобиш аламофайр открывает соединение в другом потоке?

Vadim
13.08.2017
19:07:50
неужели асинхронность такая сложная для понимания вещь

Misha
13.08.2017
19:08:23
Я думал, что аламофайр синхронно работает

Vadim
13.08.2017
19:08:39
с чего это, лол