homeview patch
This commit is contained in:
parent
f7c8c1c0a0
commit
efc7773c04
@ -11,6 +11,10 @@ struct NewHomeTab: View {
|
|||||||
viewModel.posts.enumerated().filter { $0.offset % 2 != 0 }.map { $0.element }
|
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 {
|
var body: some View {
|
||||||
VStack {
|
VStack {
|
||||||
if viewModel.isLoading {
|
if viewModel.isLoading {
|
||||||
@ -22,12 +26,12 @@ struct NewHomeTab: View {
|
|||||||
HStack(alignment: .top, spacing: 6) {
|
HStack(alignment: .top, spacing: 6) {
|
||||||
LazyVStack(spacing: 6) {
|
LazyVStack(spacing: 6) {
|
||||||
ForEach(column1Posts) { post in
|
ForEach(column1Posts) { post in
|
||||||
PostGridItem(post: post)
|
PostGridItem(post: post, width: columnWidth)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LazyVStack(spacing: 6) {
|
LazyVStack(spacing: 6) {
|
||||||
ForEach(column2Posts) { post in
|
ForEach(column2Posts) { post in
|
||||||
PostGridItem(post: post)
|
PostGridItem(post: post, width: columnWidth)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -44,10 +48,7 @@ struct NewHomeTab: View {
|
|||||||
|
|
||||||
struct PostGridItem: View {
|
struct PostGridItem: View {
|
||||||
let post: Post
|
let post: Post
|
||||||
|
let width: CGFloat // Ширина элемента
|
||||||
private var randomHeight: CGFloat {
|
|
||||||
CGFloat.random(in: 150...300)
|
|
||||||
}
|
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack(alignment: .leading, spacing: 0) { // Убираем отступ между картинкой и текстом
|
VStack(alignment: .leading, spacing: 0) { // Убираем отступ между картинкой и текстом
|
||||||
@ -55,8 +56,9 @@ struct PostGridItem: View {
|
|||||||
if let _ = post.media.first {
|
if let _ = post.media.first {
|
||||||
Image("placeholderPhoto")
|
Image("placeholderPhoto")
|
||||||
.resizable()
|
.resizable()
|
||||||
.aspectRatio(contentMode: .fill)
|
.scaledToFill() // Заполняем кадр, сохраняя пропорции
|
||||||
.frame(height: randomHeight)
|
.frame(width: width, height: width) // Устанавливаем жесткий размер
|
||||||
|
.clipped() // Обрезаем лишнее
|
||||||
}
|
}
|
||||||
|
|
||||||
// Контейнер для текста, который создает эффект "расширения"
|
// Контейнер для текста, который создает эффект "расширения"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user