diff --git a/Shared/Views/Tab/NewHomeTab.swift b/Shared/Views/Tab/NewHomeTab.swift index 841586d..04f809d 100644 --- a/Shared/Views/Tab/NewHomeTab.swift +++ b/Shared/Views/Tab/NewHomeTab.swift @@ -11,6 +11,10 @@ struct NewHomeTab: View { viewModel.posts.enumerated().filter { $0.offset % 2 != 0 }.map { $0.element } } + // Рассчитываем ширину колонки на основе ширины экрана. + // Отступы: 4 слева + 4 справа + 6 между колонками = 14. + private let columnWidth = (UIScreen.main.bounds.width - 14) / 2 + var body: some View { VStack { if viewModel.isLoading { @@ -22,12 +26,12 @@ struct NewHomeTab: View { HStack(alignment: .top, spacing: 6) { LazyVStack(spacing: 6) { ForEach(column1Posts) { post in - PostGridItem(post: post) + PostGridItem(post: post, width: columnWidth) } } LazyVStack(spacing: 6) { ForEach(column2Posts) { post in - PostGridItem(post: post) + PostGridItem(post: post, width: columnWidth) } } } @@ -44,19 +48,17 @@ struct NewHomeTab: View { struct PostGridItem: View { let post: Post + let width: CGFloat // Ширина элемента - private var randomHeight: CGFloat { - CGFloat.random(in: 150...300) - } - var body: some View { VStack(alignment: .leading, spacing: 0) { // Убираем отступ между картинкой и текстом // 1. Медиа контент if let _ = post.media.first { Image("placeholderPhoto") .resizable() - .aspectRatio(contentMode: .fill) - .frame(height: randomHeight) + .scaledToFill() // Заполняем кадр, сохраняя пропорции + .frame(width: width, height: width) // Устанавливаем жесткий размер + .clipped() // Обрезаем лишнее } // Контейнер для текста, который создает эффект "расширения"