কোনও ইউআইএলবেলের চারপাশে কীভাবে সীমানা আঁকবেন?


140

ইউিলাবেলের পক্ষে কি নিজের চারপাশে কোনও সীমানা আঁকতে পারে? পাঠ্য বসানো ডিবাগ করতে এবং প্লেসমেন্টটি দেখতে এবং লেবেলটি আসলে কত বড়।

উত্তর:


260

আপনি তার অন্তর্নিহিত CALayer বৈশিষ্ট্যের মাধ্যমে লেবেলের সীমানা সেট করতে পারেন:

#import <QuartzCore/QuartzCore.h>

myLabel.layer.borderColor = [UIColor greenColor].CGColor
myLabel.layer.borderWidth = 3.0

সুইফট 5:

myLabel.layer.borderColor = UIColor.darkGray.cgColor
myLabel.layer.borderWidth = 3.0

2
তারা করছি প্রাপ্তিসাধ্য শুধুমাত্র SDK এর 3.0 শুরু :( আপনি যদি উদ্দেশ্যমূলকভাবে ডিবাগ আপনি আপনার লেবেলের জন্য semitransparent রঙের পটভূমি সেট করতে পারেন জন্য শুধু একটি দ্রুত সমাধান চান।
ভ্লাদিমির

36
সংকলক যদি অভিযোগ করে থাকে তবে আপনি সম্ভবত ভুলে গিয়েছিলেন#import <QuartzCore/QuartzCore.h>
স্টেফান আরেন্তজ

1
@ ভ্লাদিমির এই সমাধানটি লেবেলের সমস্ত দিকের সীমানা যুক্ত করছে। আমরা কি কেবল লেবেলের ডান দিকটি বর্ডার যুক্ত করতে পারি ???
চিন্তাকাদ

1
@ চিন্থকাদ, না। আমি মনে করি এর জন্য আপনার কাস্টম অঙ্কন সহ কাস্টম লেবেল সাবক্লাসের প্রয়োজন হবে
ভ্লাদিমির

3
myLabel.layer.borderColor = UIColor.greenColor().CGColor
সুইফটে

71

এখানে কিছু জিনিস যা আপনি করতে পারেন UILabelএবং এর সীমানা রয়েছে।

এখানে চিত্র বর্ণনা লিখুন

এই লেবেলের কোড এখানে:

import UIKit
class ViewController: UIViewController {

    @IBOutlet weak var label1: UILabel!
    @IBOutlet weak var label2: UILabel!
    @IBOutlet weak var label3: UILabel!
    @IBOutlet weak var label4: UILabel!
    @IBOutlet weak var label5: UILabel!
    @IBOutlet weak var label6: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        // label 1
        label1.layer.borderWidth = 1.0

        // label 2
        label2.layer.borderWidth = 5.0
        label2.layer.borderColor = UIColor.blue.cgColor

        // label 3
        label3.layer.borderWidth = 2.0
        label3.layer.cornerRadius = 8

        // label 4
        label4.backgroundColor = UIColor.cyan

        // label 5
        label5.backgroundColor = UIColor.red
        label5.layer.cornerRadius = 8
        label5.layer.masksToBounds = true

        // label 6
        label6.layer.borderWidth = 2.0
        label6.layer.cornerRadius = 8
        label6.backgroundColor = UIColor.yellow
        label6.layer.masksToBounds = true
    }
}

নোট করুন যে সুইফটে আমদানি করার দরকার নেই QuartzCore

আরো দেখুন


1
আপনি কীভাবে এই প্যাডিংগুলি পেতে সক্ষম হন? আমার পাঠ্য সীমানা স্পর্শ করছে ...
ইস্টেইন

1
@ ইস্টেইন, আমি মনে করি আমি কেবল ইন্টারফেস বিল্ডারে বড় আকারের লেবেল টেনে এনেছি। অথবা আমি তাদের উপর আকার বাধা থাকতে পারে।
সুরগাচ

19

সুইফ্ট সংস্করণ:

myLabel.layer.borderWidth = 0.5
myLabel.layer.borderColor = UIColor.greenColor().CGColor

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

myLabel.layer.borderWidth = 0.5
myLabel.layer.borderColor = UIColor.green.cgColor

1
এটি হবেmyLabel.layer.borderColor = UIColor.blackColor().CGColor!
শ্রুতি

7

@ আইবি ডিজাইনেবলের সাথে 3/4 সুইফ্ট করুন


যদিও উপরের প্রায় সমস্ত সমাধান সূক্ষ্মভাবে কাজ করে তবে আমি এটির জন্য একটি @IBDesignableকাস্টম শ্রেণির পরামর্শ দেব ।

@IBDesignable
class CustomLabel: UILabel {

    /*
    // Only override draw() if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func draw(_ rect: CGRect) {
        // Drawing code
    }
    */

    @IBInspectable var borderColor: UIColor = UIColor.white {
        didSet {
            layer.borderColor = borderColor.cgColor
        }
    }

    @IBInspectable var borderWidth: CGFloat = 2.0 {
        didSet {
            layer.borderWidth = borderWidth
        }
    }

    @IBInspectable var cornerRadius: CGFloat = 0.0 {
        didSet {
            layer.cornerRadius = cornerRadius
        }
    }
}

2

আপনি এই রেপো ব্যবহার করতে পারেন: জিএসবারর্ডার লেবেল

এটি বেশ সহজ:

GSBorderLabel *myLabel = [[GSBorderLabel alloc] initWithTextColor:aColor
                                                     andBorderColor:anotherColor
                                                     andBorderWidth:2];

এটি পাঠ্যের আসল অক্ষরগুলির চারপাশে সীমানা নিয়ে কাজ করে, প্রশ্নটি পাঠ্যের ভিতরে থাকা আয়তক্ষেত্রের চারপাশের সীমানা সম্পর্কে কথা বলছে
jjxtra ২

1

UILabel বৈশিষ্ট্য সীমানা রঙ, সীমানা প্রস্থ, সুইফট 4-এ কোণার রেডিও adi

@IBOutlet weak var anyLabel: UILabel!
   override func viewDidLoad() {
        super.viewDidLoad()
        anyLabel.layer.borderColor = UIColor.black.cgColor
        anyLabel.layer.borderWidth = 2
        anyLabel.layer.cornerRadius = 5
        anyLabel.layer.masksToBounds = true
}

1

সুইফট 4 এর সমাধান:

আপনার লেবেল.লায়ার.বারর্ডার কালার = ইউআইকিওলর.ড্রিন.সি.কমারার


0

এটি সত্যিই আপনার দৃষ্টিতে কত বোর্ডার ব্যবহার করে তার উপর নির্ভর করে, কখনও কখনও কেবল একটি ইউআইভিউইউ যুক্ত করুন যা সীমানাটি তৈরি করতে আকারটি কিছুটা বড়। ভিউ উত্পাদন করার চেয়ে পদ্ধতিটি দ্রুত faster


0

আপনার লেবেলকে বিশিষ্ট পাঠ্যগুলির জন্য একটি এনএস্যাট্রিবিউটেড স্ট্রিং ব্যবহার করা সম্ভবত আপনার সেরা বাজি। এই উদাহরণটি দেখুন।

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