প্রোগ্রাম হিসাবে ইউআইভিউয়ের কাস্টম বর্ডার রঙ কীভাবে সেট করবেন?


101

আমি ইউআইভিউ-র কাস্টম সীমানার রঙটি প্রোগ্রাম্টিকভাবে সুইফটে সেট করার চেষ্টা করছি am


4
আপনার প্রশ্নে প্রাসঙ্গিক কোডটি দেখান। আপনার কী সমস্যা রয়েছে তা ব্যাখ্যা করুন।
rmaddy

4
কোকো টাচের সম্ভাব্য সদৃশ : ইউআইভিউ'র সীমানার রঙ এবং ঘনত্ব কীভাবে পরিবর্তন করবেন? আপনাকে কেবল তাড়াতাড়ি ব্যবহার করতে হবে
ইন্দ্র কুমার রাঠোর

উত্তর:


203

আপনি যদি সুইফট ২.০+ ব্যবহার করেন

self.yourView.layer.borderWidth = 1
self.yourView.layer.borderColor = UIColor(red:222/255, green:225/255, blue:227/255, alpha: 1).cgColor

দ্রষ্টব্য: এটি আমার পক্ষে কাজ করে নি বলে মনে হয়েছে (সম্ভবত আমি দ্রুত 3.1 এ চলেছি?)। পারস জোশির ( স্ট্যাকওভারফ্লো.
com/a/29701061/

আমি আমার উত্তর সম্পাদনা করেছি। এটি আপনার পক্ষে কাজ করা নিশ্চিত .. অ্যাশলে কুলম্যান
শশী ভার্মা

4
আপনি স্পষ্টভাবে দ্রুতগতি 3. মধ্যে উপস্থিত init কল না প্রয়োজন
ibrahimab

একাধিক রঙ ব্যবহার করা কি সম্ভব?
Gökhan Çokkeçeci

4
আপনার দুটি সংস্করণ মধ্যে কোন পার্থক্য আছে?
ফোগমিস্টার

89

ইন সুইফট 4 আপনি সীমানার রঙ সেট এবং কোড নিচে ব্যবহার UIControls প্রস্থকে পারবেন না।

let yourColor : UIColor = UIColor( red: 0.7, green: 0.3, blue:0.1, alpha: 1.0 )
yourControl.layer.masksToBounds = true
yourControl.layer.borderColor = yourColor.CGColor
yourControl.layer.borderWidth = 1.0

<সুইফ্ট 4 , আপনি নীচের কোডটি ব্যবহার করে ইউআইভিউ'র সীমানা প্রস্থ এবং সীমানার রঙ সেট করতে পারেন।

yourView.layer.borderWidth = 1

yourView.layer.borderColor = UIColor.red.cgColor

4
@ শশী ভার্মা আপনাকে স্বাগতম স্তরগুলি সম্পর্কে গভীর বিবরণের জন্য, অ্যাপলের বিভিন্ন অবজেক্টের শ্রেণির রেফারেন্স ডকুমেন্টগুলি পড়ুন, এটি আপনার জন্যও সহায়ক :)
পারস জোশী

16

এটি করতে @IBDesignable এবং @IBInspectable ব্যবহার করুন ।

এগুলি পুনরায় ব্যবহারযোগ্য, ইন্টারফেস বিল্ডার থেকে সহজেই পরিবর্তনযোগ্য এবং পরিবর্তনগুলি অবিলম্বে স্টোরিবোর্ডে প্রতিফলিত হয়

স্টোরিবোর্ডে থাকা বস্তুকে নির্দিষ্ট শ্রেণিতে রূপান্তর করুন

টুকিটাকি সংকেতলিপি:

@IBDesignable
class CustomView: UIView{

@IBInspectable var borderWidth: CGFloat = 0.0{

    didSet{

        self.layer.borderWidth = borderWidth
    }
}


@IBInspectable var borderColor: UIColor = UIColor.clear {

    didSet {

        self.layer.borderColor = borderColor.cgColor
    }
}

override func prepareForInterfaceBuilder() {

    super.prepareForInterfaceBuilder()
}

}

ইন্টারফেস বিল্ডার থেকে সহজ পরিবর্তনের অনুমতি দেয়:

ইন্টারফেস নির্মাতা


আমি এই সমাধানটি আরও পছন্দ করি কারণ এটি পুনরায় ব্যবহারযোগ্য একটি যেখানে আমরা ইউআইভিউকে কাস্টমভিউতে সেট করি তবে তবুও ঘরে আরও পরিবর্তন হয়।
n0rm

এটি অর্জনের জন্য এটি আমার প্রিয় উপায় ছিল তবে অন্ধকার মোডের সাথে এটি সত্যই ভাল কাজ করে না। এটি বর্তমান ম্যাকোসের রঙের শৈলী পায় এবং স্থির ব্যবহার করে। তবে বিল্ড ইন @IBDesignableএবং @IBInspectableসমস্ত কাজ ঠিকঠাক, তাই শুল্কের অন্ধকার / হালকা উভয় মোডের সাথে রঙিন সম্পদগুলি ব্যবহার করার একটি উপায় থাকা উচিত ~ যে কেউ কীভাবে এটি অর্জন করতে পারে জানেন?
যাযাবর বিকাশকারী

12

আপনি সমস্ত ইউআইভিউজের সাথে এটি ব্যবহার করতে এক্সটেনশন লিখতে পারেন যেমন, ইউআইবাটন, ইউআইএলবেল, ইউআইআইমেজভিউ ইত্যাদি You আপনি আপনার প্রয়োজনীয়তা অনুসারে আমার নিম্নলিখিত পদ্ধতিটি কাস্টমাইজ করতে পারেন তবে আমি মনে করি এটি আপনার পক্ষে ভালভাবে কাজ করবে।

extension UIView{

    func setBorder(radius:CGFloat, color:UIColor = UIColor.clearColor()) -> UIView{
        var roundView:UIView = self
        roundView.layer.cornerRadius = CGFloat(radius)
        roundView.layer.borderWidth = 1
        roundView.layer.borderColor = color.CGColor
        roundView.clipsToBounds = true
        return roundView
    }
}

ব্যবহার:

btnLogin.setBorder(7, color: UIColor.lightGrayColor())
imgViewUserPick.setBorder(10)

4
@ লিডা আমি মনে করি না এপিআই ভাষা সম্পর্কে তার / তার অনেক পছন্দ আছে!
মূল্যবান

9

সুইফ্ট 5.2 , ইউআইভিউ + এক্সটেনশন

extension UIView {
    public func addViewBorder(borderColor:CGColor,borderWith:CGFloat,borderCornerRadius:CGFloat){
        self.layer.borderWidth = borderWith
        self.layer.borderColor = borderColor
        self.layer.cornerRadius = borderCornerRadius

    }
}

আপনি এই এক্সটেনশনটি ব্যবহার করেছেন;

yourView.addViewBorder(borderColor: #colorLiteral(red: 0.6, green: 0.6, blue: 0.6, alpha: 1), borderWith: 1.0, borderCornerRadius: 20)

আপনি ক্লিপটোবাউন্ডস যুক্ত করতে মিস করেছেন = সত্য
এল-এসলাম


3

আপনার কোডটি লিখুন viewDidLoad()

self.view.layer.borderColor = anyColor().CGColor

আর তুমি সেট করতে পারেন Colorসঙ্গেRGB

func anyColor() -> UIColor {
    return UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0)
}

CALayerমধ্যে কিছু শিখুনUIKit


যাইহোক, আপনি স্পষ্টভাবে সীমানা প্রস্থটি সেট না করা ছাড়া এটি কিছুই করে না।
নিকোলাস মিয়ারি

@ নিকোলাসমিয়ারি যা প্রত্যাশিত হবে ... আপনি কোনও সীমানা রঙ দেখতে পাচ্ছেন না যার জন্য আপনি কোনও আকার নির্ধারণ করেন নি।
জোনো গুথ্রি

দুঃখিত, আমি উল্লেখ করতে ভুলে গেছি যে আমি পাঠ্য ক্ষেত্রগুলি উল্লেখ করছি ... যা মনে হয় প্রথম থেকেই শূন্য-পূর্ব সীমানার প্রস্থ রয়েছে। তবে আমি স্পষ্টভাবে সীমানা প্রস্থ নির্ধারণ না করা পর্যন্ত আমি যে রঙটি প্রতিস্থাপন করেছি তা পেতে লড়াই করেছি led
নিকোলাস মিয়ারি


3

আমরা এর জন্য পদ্ধতি তৈরি করতে পারি। কেবল এটি ব্যবহার করুন।

public func createBorderForView(color: UIColor, radius: CGFloat, width: CGFloat = 0.7) {
    self.layer.borderWidth = width
    self.layer.cornerRadius = radius
    self.layer.shouldRasterize = false
    self.layer.rasterizationScale = 2
    self.clipsToBounds = true
    self.layer.masksToBounds = true
    let cgColor: CGColor = color.cgColor
    self.layer.borderColor = cgColor
}

2

সুইফট 3.0

       groundTrump.layer.borderColor = UIColor.red.cgColor

নতুন উত্তর যুক্ত করার পরিবর্তে, আপনি অবশ্যই মূল উত্তরদাতার কাছে একটি সম্পাদনা অনুরোধ প্রেরণ করেছেন
রাজন মহেশ্বরী

@ রাজমাহেশ্বরী দয়া করে না। অন্য লোকের উত্তরে কোড যুক্ত করবেন না। আপডেটগুলি তাদের নিজস্ব হিসাবে পোস্ট করা উচিত, অন্য উত্তরের মধ্যে নয়। এইভাবে প্রতিটি পোস্টার তাদের পোস্ট করার জন্য দায়ী ...
এরিক আয়া

@ এরিকআয়া উত্তরটি আপডেট করার বিষয়ে নয়। এটি একটি সম্পাদনা অনুরোধ, উত্তরদাতাদের মন্তব্যে থাকতে পারে। আমি যা জানাতে চাইছিলাম তা কি পেয়েছেন?
রাজন মহেশ্বরী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.