172 похожих чатов

Всем привет. Делаю такое вью. Тут получается вью показывается снизу

в котором скролл вью с элементами или tableView. Как сделать закрытие этой вьюшки скролом вниз? Чтобы можно было контент скролить, а если скролл дойдет до топ, то скролить уже саму вьюшку вниз?

5 ответов

5 просмотров
M- Автор вопроса

Если есть ресурсы на что то вроде этого, тоже буду рад

scroll did scroll есть такая функция в делегате scrollview

если у вас минимум ios13 то там есть modal presentation, там вью как раз себя ведет как вам надо

это стандартное поведение, что значит "как сделать"

Этот вопрос ещё актуален? Там подход такой: делаешь свой UIPresentationController, добавляешь показывающийся контроллер на свою вьюху. Туда же добавляешь PanRecognizer и слушаешь его работу. Также тебе нужно либо по KVO слушать вложенную UIScrollView, либо делать подмену делегата ей (что-то типа multicast delegate) и слушать scrollViewDidScroll. По изменению pan'a ты начинаешь слушать offset у scrollView и если он становится больше 0, то делаешь scrollView.bounce = false и наоборот. Это нужно, чтобы scrollView не прыгала по достижению кромки. Ну а по изменению pan'a ты двигаешь свою вьюху, менешь ей трансформ или как-то иначе делаешь. Потом при отпускании pan ты считаешь ускорение и на освновании этого принимаешь решение, куда будет двигаться твоя вьюха. И потом решаешь закрывать её или нет.

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
А чем вам питонисты не угодили?😂
.
79
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
4
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Карта сайта