Джерело
BW Swift | Зазвичай не люблю писати про UI, бо більше тягне на тяжкий люкс у вигл...
1 070 Охват/переглядів
2025-10-02 19:42
Повідомлення №2179
Зазвичай не люблю писати про UI, бо більше тягне на тяжкий люкс у вигляді хаків та алгоритмів. Але тут екзотичний випадок =) Панове: реалізація бокових "sticky" хедерів на SwiftUI. Власне, Header знаходиться не зверху списку як заведено, а зліва або справа. При цьому його поведінка еквівалентна системним хедерам. Дизайн мого рішення напряму експлуатує системний топ хедер (власне, щоб делегувати йому більшість розрахунків), але основний виклик, що став переді мною - повністю "вирізати" його зверху, але зеберегти при цьому його логічну складову. Мої розрахунки здебільшого стосувалися поведінки бокового відображення. Бо навідміну від топ-хедера, що послідовно лежить в таблиці, боковий варіант лежить безпосередньо на рівні контенту, та не перекриває його. Створення такої таблиці умовно виглядає так: SideHeaderList(data: days) { day in ForEach(0..<4, id: \.self) { index in item(for: day, index: index) }} header: { day in header(for: day)}.padding(.horizontal)
А повна реалізація складая лише 50 строк чистого SwiftUI коду. Планую трохи привести його до ладу та опенсорснути. Коли зроблю це, викачу з окремим дописом. Фан факт: за версією ChatGPT, подібних реалізацій інтернет не знає.Ну а поки, діліться ідеями, як би ви реалізовували подібний компонент, та яким бачите його практичне використання! Може вкраду декілька ідей =)------------------------------Я часто пишу і писав різні здебільшого технічні цікавинки на моєму Linkedin. Можеш підписатися, якщо було цікаво =)