Xcode 6.1 / Swift를 사용하여 프로그래밍 방식으로 이미지를 UIImageView로 설정
Xcode 6.1에서 프로그래밍 방식으로 UIImageView를 설정하려고합니다.
@IBOutlet weak var bgImage: UIImageView!
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
그러나 Xcode는 bgImage = UIImageView(image: image)
Image 와 함께 "예상 선언" "afternoon"
이 PNG 라고 말하고 있으며 내 이해는 PNG가 XCode 6.1에서 확장이 필요하지 않다는 것입니다.
또한 시도 bgImage.image = UIImage(named: "afternoon")
했지만 여전히 다음을 얻습니다.
최신 정보
좋아, 업데이트 UIImageView
할 코드를 viewDidLoad
함수에 넣었 지만 UIImageView
여전히 이미지가 표시되지 않습니다 (기본 디렉토리에 오후 .png로 존재 함).
@IBOutlet weak var bgImage: UIImageView!
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var timeLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
updateTime()
var timer = NSTimer()
let aSelector : Selector = "updateTime"
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: aSelector, userInfo: nil, repeats: true)
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
}
bgImage가 IBOutlet으로 할당되고 링크되었으므로 UIImageView로 초기화 할 필요가 없습니다. 대신해야 할 일은 이미지 속성을 bgImage.image = UIImage(named: "afternoon")
. 이 코드를 실행 한 후 이미 콘센트를 사용하여 할당되었으므로 이미지가 정상적으로 표시되었습니다.
그러나 콘센트가 아니고 스토리 보드 / xib 파일의 UIImageView 개체에 이미 연결되어 있지 않은 경우 다음과 같이 할 수 있습니다.
class ViewController: UIViewController {
var bgImage: UIImageView?
override func viewDidLoad() {
super.viewDidLoad()
var image: UIImage = UIImage(named: "afternoon")!
bgImage = UIImageView(image: image)
bgImage!.frame = CGRectMake(0,0,100,200)
self.view.addSubview(bgImage!)
}
}
xcode 8에서는 선택 창 (NEW)에서 이미지를 직접 선택할 수 있습니다.
"이미지"를 입력하면 제안 상자가 표시되고 목록에서 "이미지 리터럴"을 선택합니다 (첨부 된 그림 참조).
그런 다음 사각형을 탭하면
이미지 자산에있는 모든 이미지 ( 첨부 된 두 번째 그림 참조)를 볼 수 있습니다 ... 또는 거기에서 다른 이미지를 선택합니다.
- 이제 사각형 상자를 탭하십시오-(위 옵션을 선택하면 사각형 상자가 표시됩니다)
좋아, 이것으로 작동하도록해라 (프로그래밍 방식으로 UIImageView 생성) :
var imageViewObject :UIImageView
imageViewObject = UIImageView(frame:CGRectMake(0, 0, 600, 600))
imageViewObject.image = UIImage(named:"afternoon")
self.view.addSubview(imageViewObject)
self.view.sendSubviewToBack(imageViewObject)
이것은 어떤가요;
myImageView.image=UIImage(named: "image_1")
여기서 image_1은 image_1로 자산 폴더 내에 있습니다. png .
This worked for me since i'm using a switch case to display an image slide.
This code is in the wrong place:
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
You must place it inside a function. I recommend moving it inside the viewDidLoad
function.
In general, the only code you can add within the class that's not inside of a function are variable declarations like:
@IBOutlet weak var bgImage: UIImageView!
With swift syntax this worked for me :
let leftImageView = UIImageView()
leftImageView.image = UIImage(named: "email")
let leftView = UIView()
leftView.addSubview(leftImageView)
leftView.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
leftImageView.frame = CGRect(x: 10, y: 10, width: 20, height: 20)
userNameTextField.leftViewMode = .always
userNameTextField.leftView = leftView
In Swift 4, if the image is returned as nil.
Click on image, on the right hand side (Utilities) -> Check Target Membership
If you want to do it the way you showed in your question, this is a way to do it inline
class YourClass: UIViewController{
@IBOutlet weak var tableView: UITableView!
//other IBOutlets
//THIS is how you declare a UIImageView inline
let placeholderImage : UIImageView = {
let placeholderImage = UIImageView(image: UIImage(named: "nophoto"))
placeholderImage.contentMode = .scaleAspectFill
return placeholderImage
}()
var someVariable: String!
var someOtherVariable: Int!
func someMethod(){
//method code
}
//and so on
}
You just need to drag and drop an ImageView
, create the outlet action, link it, and provide an image (Xcode is going to look in your assets
folder for the name you provided (here: "toronto"))
In yourProject/ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imgView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imgView.image = UIImage(named: "toronto")
}
}
'your programing' 카테고리의 다른 글
laravel 지원되는 암호화기를 찾을 수 없습니다. (0) | 2020.10.13 |
---|---|
부트 스트랩 모달 창을 완전히 파괴하는 방법은 무엇입니까? (0) | 2020.10.13 |
chartjs에서 시작 값을 "0"으로 설정하는 방법은 무엇입니까? (0) | 2020.10.13 |
Windows 양식이 최소화되는시기를 감지하는 방법은 무엇입니까? (0) | 2020.10.13 |
사전의 키 순서 (0) | 2020.10.13 |