সুইফটে কীভাবে ইউআইবাটন ইমেজ পরিবর্তন করবেন


111

আমি সুইফট ব্যবহার করে কোনও ইউআইবাটনটির চিত্র পরিবর্তন করার চেষ্টা করছি ... আমার কি করা উচিত

এটি ওবিজে-সি কোড.কিন্তু আমি সুইফ্টের সাথে জানি না:

[playButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];

উত্তর:


320

আপনার ওবিসি-সি কোড থেকে আমার মনে হয় আপনি বোতামের জন্য একটি চিত্র সেট করতে চান তাই এইভাবে চেষ্টা করুন:

let playButton  = UIButton(type: .Custom)
if let image = UIImage(named: "play.png") {
    playButton.setImage(image, forState: .Normal)
}

সংক্ষেপে:

playButton.setImage(UIImage(named: "play.png"), forState: UIControlState.Normal)

সুইফ্ট 3 এর জন্য:

let playButton  = UIButton(type: .custom)
playButton.setImage(UIImage(named: "play.png"), for: .normal)

7
আপনার চিত্রটি প্রদর্শিত না হওয়া পর্যন্ত সিস্টেমের কাছে নয়, UIButtonType.Custom এ বাটনউইটটাইপ সেট করা উচিত
sazz

8
যারা সুইফট 3 সিনট্যাক্সের সন্ধান করছেন তাদের জন্য: playButton.setImage(UIImage(named: "play.png"), for: .normal)
ডাস্টিন সেনোস

11

সুইফট 4, (এক্সকোড 9) এ বোতামের ছবি চালু বা বন্ধ করতে (বিটিএনআরসি) উদাহরণ করুন:

var bRec:Bool = true

@IBOutlet weak var btnRec: UIButton!
@IBAction func btnRec(_ sender: Any) {
    bRec = !bRec
    if bRec {
        btnRec.setImage(UIImage(named: "MicOn.png"), for: .normal)
    } else {
        btnRec.setImage(UIImage(named: "MicOff.png"), for: .normal)
    }
}

9

ধরুন এটি আপনার সংযুক্ত UIButton Nameমত

@IBOutlet var btn_refresh: UIButton!

আপনি সরাসরি তিনটি মোডে আপনার ইমেজ রাখতে পারেন

 // for normal state
btn_refresh.setImage(UIImage(named: "xxx.png"), forState: UIControlState.Normal)
     // for Highlighted state
      btn_refresh.setImage(UIImage(named: "yyy.png"), forState: UIControlState.Highlighted)

        // for Selected state
         btn_refresh.setImage(UIImage(named: "zzzz.png"), forState: UIControlState.Selected)

আপনার বোতাম ক্রিয়া

  //MARK: button_refresh action
@IBAction func button_refresh_touchup_inside(sender: UIButton)
{
    //if you set the image on same  UIButton
    sender.setImage(UIImage(named: "newimage.png"), forState: UIControlState.Normal)

    //if you set the image on another  UIButton
       youranotherbuttonName.setImage(UIImage(named: "newimage.png"), forState: UIControlState.Normal)
}

আপনার যদি বোতামটির জন্য কোনও ক্রিয়া থাকে তবে আপনাকে আউটলেট হিসাবে বোতামটি সেট করার দরকার নেই। বোতামের প্যারামিটার প্রেরকটি বাটনটির একটি রেফারেন্স যাতে আপনি কেবল "let yourButton = প্রেরককে হিসাবে! UIButton" করতে পারেন এবং তারপরে প্রয়োজনীয় বোতামে পরিবর্তনগুলি করতে পারেন।
মাইকা মন্টোয়া

7

যে কেউ এসেটস এক্সএকসেটস এবং সুইফট 3 ব্যবহার করে তাদের পক্ষে এটি এমন হবে (.png এর প্রয়োজন নেই)

let buttonDone  = UIButton(type: .Custom)

if let image = UIImage(named: "Done") {
    self.buttonDone.setImage(image, for: .normal)
}

6

দ্রুততম 3.0 হিসাবে। সাধারণ অবস্থা সরানো হয়েছে y আপনি সাধারণ অবস্থা প্রয়োগ করতে নিম্নলিখিত ব্যবহার করতে পারেন।

myButton.setTitle("myTitle", for: [])

5

আমি প্রথমে শীর্ষে আমার ভেরিয়েবলগুলি শুরু করার পদ্ধতিটি পছন্দ করি:

let playButton:UIButton!
var image:UIImage!

এবং তারপরে সেগুলিকে ভিউডিডলয়েডে সেট করুন

override func viewDidLoad {
  ...
  playButton = UIButton(type: .Custom)
  imagePlay = UIImage(named:"play.png")
  playButton.setImage(imagePlay, forState: .Normal)
}

4

হ্যাঁ, এমনকি আমরা পতাকা ব্যবহার করে ইউআইবাটনটির চিত্রও পরিবর্তন করতে পারি।

class ViewController: UIViewController
{
    @IBOutlet var btnImage: UIButton!
    var flag = false

    override func viewDidLoad()
    {
        super.viewDidLoad()

        //setting default image for button
        setButtonImage()

    }

    @IBAction func btnClick(_ sender: Any)
    {
        flag = !flag
        setButtonImage()
    }

    func setButtonImage(){
        let imgName = flag ? "share" : "image"
        let image1 = UIImage(named: "\(imgName).png")!
        self.btnImage.setImage(image1, for: .normal)
    }

}

এখানে, প্রতিটি ক্লিকের পরে আপনার বোতামের চিত্রটি বিকল্পভাবে পরিবর্তিত হবে।


2

সুইফট 5 এবং বোতামের আকারে চিত্রের স্কেলগুলি নিশ্চিত করে তবে বোতামের সীমানার মধ্যেই থাকে।

yourButton.clipsToBounds = true
yourButton.contentMode = .scaleAspectFill

// Use setBackgroundImage or setImage
yourButton.setBackgroundImage(UIImage(named: "yourImage"), for: .normal)

1

আপনি এটি বোতামটি হাইলাইট করে এবং ডান হাতের সরঞ্জাম বারে ইনসেক্টরটির মধ্যে চিত্রটি আপডেট করতে পারেন। স্পষ্টতই আপনি কোড হিসাবে এটি পূর্বে উল্লিখিত হিসাবে করতে পারেন তবে এটি আপনার জন্য অন্য একটি বিকল্প


এটি আসলে কাজ করে না। আপনি ছবিটি কোথায় আপডেট করবেন? আপনি যদি হাইলাইট, নির্বাচিত ইত্যাদি বিভিন্ন রাজ্যের কথা বলছেন তবে এটি সেখানে কাজ করে না
কেএফডুম 9:25

1

সুইফটে 4.2 এবং এক্সকোড 10.1

নির্বাচিত ইউআইবাটন জন্য চিত্র যুক্ত করুন

button.addTarget(self, action: #selector(self.onclickDateCheckMark), for: .touchUpInside)//Target 
button.setImage(UIImage.init(named: "uncheck"), for: UIControl.State.normal)//When selected
button.setImage(UIImage.init(named: "check"), for: UIControl.State.highlighted)//When highlighted
button.setImage(UIImage.init(named: "check"), for: UIControl.State.selected)//When selected

তবে আপনি যদি নির্বাচিত বোতামের চিত্রটি পরিবর্তন করতে চান তবে আপনাকে এটির নির্বাচিত স্থিতি পরিবর্তন করতে হবে। তারপরে কেবল বাছাইকৃত চিত্রটি আপনার বোতামে উপস্থিত হবে।

@objc func onclickDateCheckMark(sender:UIButton) {
    if sender.isSelected == true {
        sender.isSelected = false
        print("not Selected")
    }else {
        sender.isSelected = true
        print("Selected")

    }
}

1

সুইফট 5

yourButton.setImage(UIImage(named: "BUTTON_FILENAME.png"), for: .normal)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.