fix(character-detail, gallery): 이미지 사이즈 수정
This commit is contained in:
@@ -140,61 +140,68 @@ struct CharacterDetailGalleryView: View {
|
||||
|
||||
@ViewBuilder
|
||||
private func galleryImageView(item: CharacterImageListItemResponse, index: Int) -> some View {
|
||||
ZStack {
|
||||
// 이미지
|
||||
AsyncImage(url: URL(string: item.imageUrl)) { image in
|
||||
image
|
||||
.resizable()
|
||||
.aspectRatio(contentMode: .fill)
|
||||
} placeholder: {
|
||||
Rectangle()
|
||||
.fill(Color.gray.opacity(0.3))
|
||||
}
|
||||
.frame(width: 132, height: 165)
|
||||
.clipped()
|
||||
.cornerRadius(0)
|
||||
GeometryReader { geo in
|
||||
let width = geo.size.width
|
||||
let height = width * 5 / 4
|
||||
|
||||
// 미소유 이미지 오버레이
|
||||
if !item.isOwned {
|
||||
// 어두운 오버레이
|
||||
Rectangle()
|
||||
.fill(Color.black.opacity(0.2))
|
||||
.frame(width: 132, height: 165)
|
||||
|
||||
// 자물쇠 아이콘과 코인 정보
|
||||
VStack(spacing: 8) {
|
||||
// 자물쇠 아이콘
|
||||
Image("ic_new_lock")
|
||||
ZStack {
|
||||
// 이미지
|
||||
AsyncImage(url: URL(string: item.imageUrl)) { image in
|
||||
image
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: 24)
|
||||
.scaledToFill()
|
||||
.frame(width: width, height: height)
|
||||
.clipped()
|
||||
} placeholder: {
|
||||
Rectangle()
|
||||
.fill(Color.gray.opacity(0.3))
|
||||
}
|
||||
|
||||
// 미소유 이미지 오버레이
|
||||
if !item.isOwned {
|
||||
// 어두운 오버레이
|
||||
Rectangle()
|
||||
.fill(Color.black.opacity(0.2))
|
||||
|
||||
// 코인 정보 배경
|
||||
HStack(spacing: 4) {
|
||||
Image("ic_can")
|
||||
// 자물쇠 아이콘과 코인 정보
|
||||
VStack(spacing: 8) {
|
||||
// 자물쇠 아이콘
|
||||
Image("ic_new_lock")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: 16)
|
||||
.frame(width: 24)
|
||||
|
||||
Text("\(item.imagePriceCan)")
|
||||
.font(.custom(Font.preBold.rawValue, size: 16))
|
||||
.foregroundColor(Color(hex: "#263238"))
|
||||
}
|
||||
.padding(.horizontal, 12)
|
||||
.padding(.vertical, 6)
|
||||
.background(Color(hex: "#B5E7FA"))
|
||||
.cornerRadius(30)
|
||||
.overlay {
|
||||
RoundedRectangle(cornerRadius: 30)
|
||||
.strokeBorder(lineWidth: 1)
|
||||
.foregroundColor(.button)
|
||||
// 코인 정보 배경
|
||||
HStack(spacing: 4) {
|
||||
Image("ic_can")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(width: 16)
|
||||
|
||||
Text("\(item.imagePriceCan)")
|
||||
.font(.custom(Font.preBold.rawValue, size: 16))
|
||||
.foregroundColor(Color(hex: "#263238"))
|
||||
}
|
||||
.padding(.horizontal, 12)
|
||||
.padding(.vertical, 6)
|
||||
.background(Color(hex: "#B5E7FA"))
|
||||
.cornerRadius(30)
|
||||
.overlay {
|
||||
RoundedRectangle(cornerRadius: 30)
|
||||
.strokeBorder(lineWidth: 1)
|
||||
.foregroundColor(.button)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.frame(width: width, height: height)
|
||||
.clipped()
|
||||
.contentShape(Rectangle())
|
||||
.onTapGesture {
|
||||
viewModel.onImageTapped(item, index: index)
|
||||
}
|
||||
}
|
||||
.onTapGesture {
|
||||
viewModel.onImageTapped(item, index: index)
|
||||
}
|
||||
.aspectRatio(4/5, contentMode: .fit)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user