Swift를 사용하여 이미지 크기를 조정하는 방법UI?
Assets.xcassets에 큰 이미지가 있습니다.Swift를 사용하여 이 이미지의 크기를 조정하는 방법UI를 작게 만들까요?
프레임을 설정하려고 했지만 작동하지 않습니다.
Image(room.thumbnailImage)
.frame(width: 32.0, height: 32.0)
하면 됩니다..resizable()
하기 전Image
.
Image(room.thumbnailImage)
.resizable()
.frame(width: 32.0, height: 32.0)
이거 어때:
struct ResizedImage: View {
var body: some View {
Image("myImage")
.resizable()
.scaledToFit()
.frame(width: 200, height: 200)
}
}
이미지 뷰는 200x200이지만 이미지는 원래 애스펙트비(그 프레임 내에서 재스케일링)를 사용합니다.
스위프트, UI를 합니다..resizable()
★★★★★★★★★★★★★★★★★★★★★★★★★★★「」를 사용해 ..aspectRatio()
할 수 있습니다.ContentMode
필요에 따라 이미지를 "적합"하거나 "채우기"할 수 있습니다.
예를 들어, 다음과 같이 맞춤으로써 이미지의 크기를 조정하는 코드가 있습니다.
Image("example-image")
.resizable()
.aspectRatio(contentMode: .fit)
@raphael의 답변과 코멘트에 대해 자세히 설명하겠습니다.
Xcode 11 beta 2 에서는, 화상을 다른 요소로 감아 원래의 석면비를 유지하면서, 임의의 치수로 화상을 스케일링 할 수 있습니다.
예.
struct FittedImage: View
{
let imageName: String
let width: CGFloat
let height: CGFloat
var body: some View {
VStack {
Image(systemName: imageName)
.resizable()
.aspectRatio(1, contentMode: .fit)
}
.frame(width: width, height: height)
}
}
struct FittedImagesView: View
{
private let _name = "checkmark"
var body: some View {
VStack {
FittedImage(imageName: _name, width: 50, height: 50)
.background(Color.yellow)
FittedImage(imageName: _name, width: 100, height: 50)
.background(Color.yellow)
FittedImage(imageName: _name, width: 50, height: 100)
.background(Color.yellow)
FittedImage(imageName: _name, width: 100, height: 100)
.background(Color.yellow)
}
}
}
결과.
(어떤 이유에서인지 이미지가 약간 흐릿하게 보입니다.실제 출력은 날카롭기 때문에 안심하십시오.)
맞춤 가로 세로 비율 및 경계에 대한 클리핑으로 이미지를 렌더링하려면 다음 코드를 사용합니다.
struct ContentView: View {
var body: some View {
Image("donuts")
.resizable()
.scaledToFill()
.frame(width: 200, height: 200)
.border(Color.pink)
.clipped()
}
}
그 결과:
때 '어울리지 않다'를 해요..resizable
할 수 수식어
코드는 다음과 같습니다.
Image(room.thumbnailImage)
.resizable()
.frame(width: 32.0, height: 32.0)
struct AvatarImage: View {
var body: some View {
Image("myImage")
.resizable()
.scaledToFill() // <=== Saves aspect ratio
.frame(width: 60.0, height:60)
.clipShape(Circle())
}
}
하나의 은 '우리'를 입니다.scaleEffect
★★★★★★★★★★★★★★★★★★:
Image(room.thumbnailImage)
.resizable()
.scaleEffect(0.5)
Image(room.thumbnailImage)
.resizable()
.frame(width: 32.0, height: 32.0,alignment: .center)
인스위프트UI .resable() 속성은 이미지 크기를 조정하는 데 도움이 됩니다.그 후 커스텀 사이즈를 지정할 수 있습니다.
크기 조정 시 가로 세로 비율을 사용하려면 다음 코드를 사용할 수 있습니다.
Image(landmark.imageName).resizable()
.frame(width: 56.0, height: 56.0)
.aspectRatio(CGSize(width:50, height: 50), contentMode: .fit)
스위프트에선 꽤 쉬워 보이는데UI / 그들이 제공한 데모를 따라 https://developer.apple.com/videos/play/wwdc2019/204
struct RoomDetail: View {
let room: Room
var body: some View {
Image(room.imageName)
.resizable()
.aspectRatio(contentMode: .fit)
}
도움이 됐으면 좋겠다.
이미지 사이즈를 하드코드/수정하면 안 되기 때문입니다.여기에서는, 다양한 디바이스의 화면 해상도에 따라서 범위를 조정하는 보다 좋은 방법이 있습니다.
Image("ImageName Here")
.resizable()
.frame(minWidth: 60.0, idealWidth: 75.0, maxWidth: 95.0, minHeight: 80.0, idealHeight: 95.0, maxHeight: 110.0, alignment: .center)
.scaledToFit()
.clipShape(Capsule())
.shadow(color: Color.black.opacity(5.0), radius: 5, x: 5, y: 5)
기본적으로 이미지 보기는 컨텐츠에 맞게 자동으로 크기를 조정하므로 화면을 넘어설 수 있습니다.resizeable() 수식자를 추가하면 대신 사용 가능한 모든 공간을 채울 수 있도록 이미지의 크기가 자동으로 조정됩니다.
Image("example-image")
.resizable()
그러나, 이 때문에, 화상을 원래의 가로 세로 비율이 일그러지는 일이 있습니다.왜냐하면, 화상을 공간을 메우는 데 필요한 만큼, 모든 차원으로 늘어뜨리기 때문입니다.
애스펙트 비율을 유지하려면 .fill 또는 .fit을 사용하여 다음과 같이 aspectRatio 수식자를 추가해야 합니다.
Image("example-image")
.resizable()
.aspectRatio(contentMode: .fit)
:은 ★★★★★★★★★★★★★★★★★★★★★★.
img_Logo
이미지 이름 정의 이미지 속성을 다음과 같이 변경할 수 있습니다.
VStack(alignment: .leading, spacing: 1) {
//Image Logo Start
Image("img_Logo")
.resizable()
.padding(.all, 10.0)
.frame(width: UIScreen.main.bounds.width * 0.4, height: UIScreen.main.bounds.height * 0.2)
//Image Logo Done
}
Image(systemName: "person.fill")
.font(.system(size: 13))
를 사용하고 있는 경우에도 동작합니다.systemName
.
SwiftUI는 Swift를 사용할 수 있는 .resable() 수식자를 제공했습니다.공간에 맞게 이미지 크기를 조정하는 UI
struct ContentView: View {
var body: some View {
Image("home")
.antialiased(true) //for smooth edges for scale to fill
.resizable() // for resizing
.scaledToFill() // for filling image on ImageView
}
}
이미지 크기를 빠르게 조정하려는 경우UI는 다음 코드만 사용합니다.
import SwiftUI
struct ImageViewer : View{
var body : some View {
Image("Ssss")
.resizable()
.frame(width:50,height:50)
}
}
하지만 여기에 문제가 있다.버튼 안에 이 이미지를 추가하면 이미지가 표시되지 않고 파란색 블록만 표시됩니다.이 문제를 해결하려면 , 다음의 순서에 따릅니다.
import SwiftUI
struct ImageViewer : View{
var body : some View {
Button(action:{}){
Image("Ssss")
.renderingMode(.original)
.resizable()
.frame(width:50,height:50)
}
}
}
코드의 논리적 구조를 이해하는 것은 매우 중요합니다.Swift처럼UI 이미지 크기는 기본적으로 조정할 수 없습니다.따라서 이미지 크기를 조정하려면 이미지 뷰를 선언한 직후에 .resable() 수식자를 적용하여 크기를 조정해야 합니다.
Image("An Image file name")
.resizable()
.resizable()
이치노은 꼭 해 주세요..resizable()
변경 전에 선언해야 합니다.
다음과 같습니다.
Image("An Image file name")
.resizable()
//add other modifications here
현재 뷰에 맞게 이미지 축척을 작성하려면 resable() 수식자를 사용합니다.수식자는 사용 가능한 공간에 맞게 이미지의 크기를 조정합니다.
예:
Image("ImageName")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 200, height: 200, alignment: .center)
여기는 산의 풍경이고 이게 제 이미지입니다.
코드 내부에 간단한 이미지 뷰를 만듭니다.
var body: some View {
Image(“mountains”)
}
결과가 좋지 않아 보인다.
크기를 조정하고 처음에 맞는 척도를 사용합니다.
var body: some View {
Image(“mountains”)
.resizable()
.scaledToFit()
}
이제 훨씬 나아졌어요.
이미지는 수직으로 촬영되고 화면은 수평이므로 공백이 있습니다.
크기를 사용하여 채우지 마십시오.
이미지의 일부가 화면 밖에 있지만 배율이 없는 기본값보다 더 보기 좋습니다.
프리뷰내의 이미지를 클릭하면, 이미지의 사이즈가 표시됩니다.저 파란 선이 이미지의 테두리입니다.
Swift에서 이미지 크기를 조정하려면 를 사용해야 합니다.UI:
호출 -> > > > >Image("somename")
어느 정도 ->어느 정도 ->어느 정도 ->어느 정도 ->어느 정도 ->.resizable()
이미지 크기를 조정할 수 있게 되었습니다.
다음으로 .aspectRatio를 치수에 맞게 적용하거나 프레임을 채울 수 있습니다.
크기 조정 가능의 간단한 사용 예:
Image("somename")
.resizable()
.frame(width: 50px, height: 50px)
204
는 를 사용하여 이 이미지의 합니다.를 작게 UI를 .
resizable()
에 런음음음 and를 사용하다frame()
.
Image(room.thumbnailImage)
.resizable()
.frame(width: 32.0, height: 32.0)
다음과 같이 이미지 속성을 정의할 수 있습니다.
Image("\(Image Name)")
.resizable() // Let you resize the images
.frame(width: 20, height: 20) // define frame size as required
.background(RoundedRectangle(cornerRadius: 12) // Set round corners
.foregroundColor(Color("darkGreen")) // define foreground colour
resable() 속성을 사용할 수 있지만 공통 수식자에서는 크기 조정 가능을 사용할 수 없으므로 이미지 확장을 사용해야 합니다.
extension Image {
func customModifier() -> some View {
self
.resizable()
.aspectRatio(contentMode: .fit)
}
여러 화면 크기를 일치시키려면 다음 코드를 사용하는 것이 좋습니다.
Image("dog")
.resizable()
.frame(minWidth: 200, idealWidth: 400, maxWidth: 600, minHeight: 100, idealHeight: 200, maxHeight: 300, alignment: .center)
다음 항목도 사용할 수 있습니다.
Image("Example")
.scaleEffect(NumberWithSizeBetweenZeroAndOne)
이미지 뷰에서 동적 유형 글꼴 수식자를 사용합니다.
Image(systemName: "nose")
.font(.largeTitle)
resable()을 사용하여 가능합니다.
Image(room.thumbnailImage)
.renderingMode(.original)
.resizable()
.frame(width: 32.0, height: 32.0)
언급URL : https://stackoverflow.com/questions/56505692/how-to-resize-image-with-swiftui
'source' 카테고리의 다른 글
OS X에서 $PATH 변수의 현재 값을 확인하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
---|---|
Windows에서 명령줄을 사용하여 사용자에게 디렉토리에 대한 권한을 부여하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
UILabel에서 줄 간격을 제어하는 방법 (0) | 2023.04.16 |
Git 저장소에서 삭제된 파일을 찾아서 복원하려면 어떻게 해야 하나요? (0) | 2023.04.16 |
렌더링 시간과 성능 측면에서 패널이 가장 효율적인 순서는 무엇입니까? (0) | 2023.04.16 |