ios - স্টোরিবোর্ডে কীভাবে একটি সাধারণ বৃত্তাকার বোতাম তৈরি করবেন?




xcode uibutton (7)

সংক্ষিপ্ত উত্তর: হ্যাঁ

অতিরিক্ত ব্যাকগ্রাউন্ড চিত্র বা তার জন্য কোনও কোড না লিখে আপনি একেবারে একটি সাধারণ বৃত্তাকার বোতামটি তৈরি করতে পারেন। পছন্দসই ফলাফল পেতে, বোতামটির রানটাইম বৈশিষ্ট্যগুলি সেট করতে, নীচের দেওয়া স্ক্রিনশটটি অনুসরণ করুন।

এটি Storyboard হবে না তবে আপনি প্রকল্পটি চালানোর সময় এটি কার্যকর হবে।

বিঃদ্রঃ:
'কী পাথ' layer.cornerRadius এবং মান হ'ল layer.cornerRadius উচ্চতা এবং প্রস্থ অনুযায়ী মানটি পরিবর্তন করা দরকার। এর সূত্রটি বোতামের উচ্চতা * 0.50। তাই সিমুলেটারে বা শারীরিক ডিভাইসে প্রত্যাশিত বৃত্তাকার বোতামটি দেখতে মানটির আশেপাশে খেলুন। স্টোরিবোর্ডে গোল করার জন্য যখন আপনার একাধিক বোতাম রয়েছে তখন এই পদ্ধতিটি ক্লান্তিকর দেখাবে।

আমি সবেমাত্র আইওএস বিকাশ শিখতে শুরু করেছি, কীভাবে সহজ বৃত্তাকার বোতামটি তৈরি করতে পারি তা খুঁজে পাচ্ছি না। আমি পুরানো সংস্করণগুলির জন্য সংস্থানগুলি পাই। আমার কি একটি বোতামের জন্য একটি কাস্টম ব্যাকগ্রাউন্ড সেট করতে হবে? অ্যান্ড্রয়েডে, আমি কেবল একটি 9 প্যাচ ব্যবহার করব, তবে আমি জানি আইওএসের এই ক্ষমতা নেই।


  1. একটি কোকো টাচ ক্লাস তৈরি করুন।

  1. রাউন্ডবটন ক্লাসে কোডটি .োকান।

    import UIKit
    
    @IBDesignable
    class RoundButton: UIButton {
    
        @IBInspectable var cornerRadius: CGFloat = 0{
            didSet{
            self.layer.cornerRadius = cornerRadius
            }
        }
    
        @IBInspectable var borderWidth: CGFloat = 0{
            didSet{
                self.layer.borderWidth = borderWidth
            }
        }
    
        @IBInspectable var borderColor: UIColor = UIColor.clear{
            didSet{
                self.layer.borderColor = borderColor.cgColor
            }
        }
    }
  2. চিত্রটি দেখুন।


আপনি এর মতো কিছু করতে পারেন:

@IBDesignable class MyButton: UIButton
{
    override func layoutSubviews() {
        super.layoutSubviews()

        updateCornerRadius()
    }

    @IBInspectable var rounded: Bool = false {
        didSet {
            updateCornerRadius()
        }
    }

    func updateCornerRadius() {
        layer.cornerRadius = rounded ? frame.size.height / 2 : 0
    }
}

Identity Inspector এবং MyButton ক্লাস সেট করুন আপনার rounded সম্পত্তি থাকবে:


আপনি স্টোরিবোর্ড থেকে আপনার বোতামের IBOutlet সংযুক্ত করতে পারেন।

তারপরে কোণার বৃত্তাকার করতে আপনি আপনার বোতামের corner radius সেট করতে পারেন।

উদাহরণস্বরূপ, আপনার outlet তখন আমার myButton ,

ওবজ - সি

 self.myButton.layer.cornerRadius = 5.0 ;

দ্রুতগতি

  myButton.layer.cornerRadius = 5.0

আপনি যদি সঠিক বৃত্তাকার বোতামটি চান তবে আপনার বোতামটির width এবং height অবশ্যই equal এবং cornerRadius অবশ্যই উচ্চতা বা প্রস্থ / 2 (প্রস্থ বা উচ্চতার অর্ধেক) এর সমান হবে।


এটা চেষ্টা কর!!

 override func viewDidLoad() {
   super.viewDidLoad()

   var button = UIButton.buttonWithType(.Custom) as UIButton
   button.frame = CGRectMake(160, 100, 200,40)

   button.layer.cornerRadius =5.0
   button.layer.borderColor = UIColor.redColor().CGColor
   button.layer.borderWidth = 2.0

   button.setImage(UIImage(named:"Placeholder.png"), forState: .Normal)
   button.addTarget(self, action: "OnClickroundButton", forControlEvents: .TouchUpInside)
   button.clipsToBounds = true

   view.addSubview(button)
}
    func OnClickroundButton() {
   NSLog(@"roundButton Method Called");
}

স্টোরিবোর্ডে layer.cornerRadius যুক্ত করার সময় নিশ্চিত করুন যে আপনার নেতৃত্বাধীন বা পিছনের স্থান নেই। আপনি যদি অনুলিপি পেস্ট করেন তবে স্থান সন্নিবেশ করানো হতে পারে। এক্সকোড কোনও ধরণের সতর্কতা বা ত্রুটি বললে ভাল হবে।


import UIKit

@IBDesignable class MyButton: UIButton
{
    override func layoutSubviews() {
        super.layoutSubviews()


    }

    func updateCornerRadius(radius:CGFloat) {
        layer.cornerRadius = radius
    }
    @IBInspectable var cornerRadius:CGFloat = 0{
        didSet{
            updateCornerRadius(radius: cornerRadius)
        }
    }
}




storyboard