प्रोग्राम को Xcode 6.1 / स्विफ्ट के साथ UIImageView में छवि सेट करें


85

मैं UIImageView प्रोग्राम को Xcode 6.1 में सेट करने का प्रयास कर रहा हूं:

@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 है, और मेरी समझ है PNG को Xodeode 6.1 में एक्सटेंशन की आवश्यकता नहीं है।

अभी भी कोशिश की bgImage.image = UIImage(named: "afternoon"), लेकिन अभी भी मिलता है:

यहाँ छवि विवरण दर्ज करें

अपडेट करें

ठीक है, मैंने फ़ंक्शन UIImageViewमें अपडेट करने के लिए कोड डाल दिया है viewDidLoad, लेकिन UIImageViewअभी भी छवि नहीं दिखा रहा है (जो दोपहर के रूप में आधार निर्देशिका में मौजूद है):

@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)
}

2
आपको उस कोड को एक फंक्शन में डालना है। मैं इसे viewDidLoad () में डालूँगा।
HAS

1
चूंकि आपने इसे एक आउटलेट के रूप में घोषित किया है, क्या आपने छवि को फिर से शुरू करने के बजाय इसे असाइन करने की कोशिश की है? bgImage = UIImageView(image: image)केवल उपयोग करने के बजाय bgImage.image = UIImage(named: "afternoon")?
c_rath

1
अपडेटेड ओपी देखें ... XCode के लिए बहुत नया ... जावास्क्रिप्ट, jQuery, PHP आदि से बहुत परिचित
IlludiumPu36

जवाबों:


158

चूँकि आपके पास अपना bIImage असाइन किया गया है और एक 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!)
    }
}

49

Xcode 8 में आप सीधे चयन विंडो (NEW) से छवि चुन सकते हैं ...

  • आपको बस टाइप करने की आवश्यकता है - "छवि" और आपको एक सुझाव बॉक्स मिलेगा, फिर चयन करें - सूची से "छवि शाब्दिक" (संलग्न चित्र में देखें और)

  • तब वर्ग पर टैप करें आप सभी छवियों (
    दूसरी संलग्न तस्वीर में देखें ) को देख पाएंगे जो आपकी छवि संपत्ति में हैं ... या वहां से अन्य छवि का चयन करें।

यहाँ छवि विवरण दर्ज करें

  • अब स्क्वायर बॉक्स पर टैप करें - (ऊपर के विकल्प को चुनने के बाद आपको वह स्क्वायर बॉक्स दिखाई देगा)

यहाँ छवि विवरण दर्ज करें


4
वाह, पहली बार किसी आईडीई में ऐसा कुछ देखकर, मेरे कोड में अब बहुत अच्छा लग रहा है
Big_Chair

मदद दोस्त के लिए धन्यवाद। ध्यान रखना दोस्त।
thesamoanppprogrammer 11

11

ठीक है, इसे इसके साथ काम करना (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)

9

इस बारे में कैसा है;

myImageView.image=UIImage(named: "image_1")

जहाँ छवि_1 छवि फ़ोल्डर के रूप में संपत्ति फ़ोल्डर के भीतर है। पींग

यह मेरे लिए तब से काम कर रहा है जब मैं एक छवि स्लाइड प्रदर्शित करने के लिए स्विच केस का उपयोग कर रहा हूं।


5

यह कोड गलत जगह पर है:

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!

1
.. आपकी मदद के लिए धन्यवाद, लेकिन UIImageView अभी भी छवि नहीं दिखा रहा है ... अद्यतन ओपी देखें
IlludiumPu36

2

तेजी से वाक्य रचना के साथ यह मेरे लिए काम किया:

    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

2

स्विफ्ट 4 में, अगर छवि शून्य के रूप में वापस आ गई है।

दाईं ओर (यूटिलिटीज) पर छवि पर क्लिक करें -> लक्ष्य सदस्यता जांचें


2

यदि आप इसे अपने प्रश्न में दिखाए गए तरीके से करना चाहते हैं, तो यह इनलाइन करने का एक तरीका है

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
}

2

आपको बस एक खींचें और ड्रॉप करने की आवश्यकता है ImageView, आउटलेट कार्रवाई बनाएं, इसे लिंक करें, और एक छवि प्रदान करें (Xcode आपके assetsफ़ोल्डर में आपके द्वारा दिए गए नाम के लिए देखने जा रहा है ) (यहां: "टोरंटो")

में yourProject/ViewController.swift

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var imgView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        imgView.image = UIImage(named: "toronto")
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.