Xcode 6.1/Swift로 프로그래밍 방식으로 이미지를 UImageView로 설정
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)
이미지"afternoon"
PNG이며, X코드 6.1에서 PNG는 확장이 필요 없는 것으로 알고 있습니다.
또한 시도해 보았습니다.bgImage.image = UIImage(named: "afternoon")
, 그래도 다음을 얻을 수 있습니다.
갱신하다
네, 업데이트할 코드를 넣었습니다.UIImageView
안으로viewDidLoad
기능은 하지만UIImageView
이미지(기본 디렉터리에 afternoon.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)에서 이미지를 직접 선택할 수 있습니다.
- "image"를 입력하면 제안 상자가 표시되고 목록에서 "Image Literial"을 선택합니다(첨부된 사진 참조).
사각형을 누르면 모든 이미지를 볼 수 있습니다( 참조).
두 번째 첨부 사진) 이미지 자산에 있는...다른 이미지를 선택합니다.
- 이제 사각형 상자를 누릅니다. (위의 옵션을 선택하면 사각형 상자가 나타납니다.)
이 작업을 통해 작동(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로서 자산 폴더 내에 있습니다.
저는 스위치 케이스로 이미지 슬라이드를 표시하고 있기 때문에 효과가 있었습니다.
코드가 잘못된 위치에 있습니다.
var image : UIImage = UIImage(named:"afternoon")!
bgImage = UIImageView(image: image)
bgImage.frame = CGRect(x: 0, y: 0, width: 100, height: 200)
view.addSubview(bgImage)
함수 안에 배치해야 합니다.안으로 옮기는 것을 추천합니다.viewDidLoad
기능.
일반적으로 클래스 내에서 함수 내부가 아닌 코드를 추가할 수 있는 것은 다음과 같은 변수 선언뿐입니다.
@IBOutlet weak var bgImage: UIImageView!
신속한 구문 분석으로 효과가 있었습니다.
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
Swift 4에서 이미지가 0으로 반환된 경우.
우측 이미지 클릭 (유틸리티) -> Target Membership 확인
질문에서 보여준 것처럼 하고 싶다면, 이것이 인라인으로 하는 방법입니다.
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
}
당신은 단지 끌어다 놓기만 하면 됩니다.ImageView
, 아웃렛 액션을 만들고 링크한 후 이미지를 제공합니다(Xcode는 당신의assets
제공한 이름의 폴더(여기: "toronto")
yourProject/ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imgView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
imgView.image = UIImage(named: "toronto")
}
}
언급URL : https://stackoverflow.com/questions/27039140/programmatically-set-image-to-uiimageview-with-xcode-6-1-swift
'source' 카테고리의 다른 글
Spring JpaRepository - 엔티티 분리 및 부착 (0) | 2023.10.19 |
---|---|
상위 노드 없이 모든 하위 노드(요소, 주석, 텍스트)를 가져오는 XPath (0) | 2023.10.19 |
HTML에서 wrap text를 어떻게 말합니까? (0) | 2023.10.19 |
웹 로직/오라클에서 JDBC 풀의 기본 스키마 지정 (0) | 2023.10.19 |
MySQL-Server debian을 설치하려고 하면 mariadb-server-10.1이 설치됩니다. (0) | 2023.10.19 |