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 }
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    // Рассчитываем ширину колонки на основе ширины экрана.
 | 
			
		||||
    // Отступы: 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() // Обрезаем лишнее
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            // Контейнер для текста, который создает эффект "расширения"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user