Programing

UIImage가있는 Swift 플레이 그라운드

lottogame 2021. 1. 9. 09:18
반응형

UIImage가있는 Swift 플레이 그라운드


저는 Xcode 6으로 작업하고 있으며 세션 401 "What 's new in Xcode 6"에서 데모 된 코드를 다시 만들려고합니다. 이미지를 Images.xcassets (Sample)에 추가했으며 플레이 그라운드 파일 내에서 데모처럼이 이미지에 액세스하려고합니다.

내 코드는 다음과 같습니다 (데모처럼).

var sample = UIImage(named: "Sample")

그러나 데모처럼 작동하지 않습니다. 내가 뭔가를 놓치고 있습니까?


  1. Finder에서 .playground 파일을 엽니 다.
  2. 옆에 Resources라는 폴더를 만듭니다.
  3. 이 폴더에 원하는 이미지를 추가하십시오.
  4. 플레이 그라운드에서 opt-cmd-1을 눌러 File Inspector를 엽니 다. 오른쪽에 놀이터가 보일 것입니다. 선택하지 않은 경우 cmd-1을 눌러 프로젝트 네비게이터를 열고 플레이 그라운드 파일을 클릭하십시오.

파일 검사기

  1. 'Resource Path'에서 'Relative To Playground'를 선택하십시오.
  2. 아래에있는 폴더 아이콘을 클릭하고 앞서 만든 리소스 폴더를 선택합니다.

이제 표준 NSImage (named : "filename_without_extension")와 함께 사용할 수있는 번들이 있어야합니다.

작동중인 nsbundle 이미지

참고 : Xcode는 .playground 폴더를 자주 덮어 쓰므로 리소스 폴더가 지속적으로 삭제되고 다시 생성되지 않도록이 방법을 사용하는 것이 좋습니다.


iOS 개발자 라이브러리-> 플레이 그라운드 도움말을 보고 "리소스 파일"을 검색하면 답을 찾을 수 있습니다.

1, .playground 열기

2 、보기> 네비게이터> 프로젝트 네비게이터 표시를 선택하여 프로젝트 네비게이터를 표시하십시오.

3 、 이미지를 리소스로 드래그

다음과 같이 :

여기에 이미지 설명 입력


나는 이것에도 약간의 문제가 있었다.

불행히도 Chris의 대답은 저에게 효과가 없었습니다. Xcode 6의 이후 베타 릴리스에서이 설정이 제거되었을 수 있습니다.

다음은 2014 년 7 월 21 일에 사용 가능한 Xcode 6.0 베타 4 (6A267N)의 솔루션입니다. 이전에 "Inside Playground"옵션에 해당한다고 생각합니다. 리소스 폴더는 플레이 그라운드 패키지 자체 내에 있습니다.

이를 설정하는 방법은 다음과 같습니다.

Finder 사용-또는 저와 같고 멋진 Path Finder를 사용하는 경우 -오른쪽 선택하고 다음과 같이 패키지 내용 표시를 선택하십시오 .

여기에 이미지 설명 입력

패키지 Resources 폴더가 표시됩니다.

여기에 이미지 설명 입력

이미지 파일을 해당 폴더에 복사하면 다음 작업이 수행됩니다.

let imageNames = ["back-button", "background", "bg_top"]
let images = imageNames.map { UIImage(named: $0) }

여기에 이미지 설명 입력


Xcode 9의 경우 :

  • 리소스 폴더 선택
  • 마우스 오른쪽 버튼을 클릭 한 다음 " "리소스 "에 파일 추가 "
  • 다음과 같이 사용하십시오. let image = UIImage(named: "no")

여기에 이미지 설명 입력


Xcode 8 Beta 1부터는 Image Literals를 사용하여 이미지를 Xcode 플레이 그라운드로 가져올 수 있습니다.

image이미지 리터럴을 추가하려면 입력 시작합니다 .

스위프트 이미지 리터럴

이미지 선택 (또는 찾아보기) :

영상

인라인으로 이미지보기 :

인라인


그러나 데모처럼 작동하지 않습니다. 내가 뭔가를 놓치고 있습니까?

이름 만 사용하여 참조하기 위해 이미지를 어디에 넣어야하는지 모르겠지만 다음과 같이 이미지의 전체 경로를 지정하여 동일한 코드를 사용했습니다.

var sample = UIImage(named: "/Users/my_user_name/Desktop/Image1234.jpg")

전체 경로를 사용해야하는 것은 생각보다 복잡해 보이지만 작동하고 더 흥미로운 문제로 넘어갈 수있게되었습니다.


Playground에서 다음 명령을 사용하여 resourcePath의 경로를 찾을 수 있습니다.

var bundle = NSBundle.mainBundle()
var path = bundle.resourcePath

나에게 기본값은 다음과 같습니다.

/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Agents

OS X 플레이 그라운드와 달리 iOS 플레이 그라운드에서이 설정을 얻는 데 어려움이있었습니다. 번들과 상대 경로를 사용하여 수행하려고하면 더 복잡해집니다.

If you just want to get your hands on an image quickly, you can also just use absolute file path:

On iOS:

# iOS
let absoluteImagePath = "/absolute/path/to/image.png"
let image = UIImage(contentsOfFile: absoluteImagePath)

And on OS X

# OS X
let absoluteImagePath = "/absolute/path/to/image.png"
let image = NSImage(contentsOfFile: absoluteImagePath)

This is what worked for me on Xcode Version 6.1.1.

  1. Create Playground file under same directory as main storyboard.

    폴더 구조

  2. Open Utilities pane for Playground file, and click the right arrow in Resource Path section to add your images in that directory.

    플레이 그라운드의 리소스 경로

  3. Test image within Playground file.

    결과


On the iOS playground with XCode 6 beta 5 (and probably later) you can see the image inside the bundle:

  1. In the playground press Cmd+Opt+1 and click the arrow under the Resource Path (this will open Finder)
  2. Put your picture to this folder
  3. Access it with either

    let img = UIImage(named: "logo.png", inBundle: NSBundle.mainBundle(),
                      compatibleWithTraitCollection: nil)
    

    or

    let path = NSBundle.mainBundle().pathForResource("logo", ofType: "png")
    let img = UIImage(contentsOfFile:path)
    

    or in Swift 4:

    let path = Bundle.main.path(forResource:"logo", ofType: "png")
    let img = NSImage(contentsOfFile:path!)
    

Using XCode 6.3.1 and running playground in full simulator (iOS) I had to do the following:

  1. Find your .playground file in finder
  2. Right click it -> show package contents
  3. 아직 존재하지 않는 경우 패키지 내에 Resources라는 폴더를 만듭니다.
  4. 거기에 이미지 추가

그런 다음 다음으로 인스턴스화하십시오. let i = UIImage(named: "filename.png")

참조 URL : https://stackoverflow.com/questions/24069479/swift-playgrounds-with-uiimage

반응형