ইউআইবেল লেয়ার.কর্নারিয়াস আইওএস 7.1 এ কাজ করছে না working


189

আমি বর্তমানে সম্পত্তি সহ একটি ইউআইএলবেলের দিকে নজর দিচ্ছি addMessageLabel.layer.cornerRadius = 5.0f;আইওএস .0.০ ইনস্টল থাকা একটি ডিভাইসে এটির কোণাগুলি রয়েছে। আইওএস 7.1 ইনস্টল থাকা কোনও ডিভাইসে এটির গোলাকার কোণ নেই।

এটি কি আইওএস 7.1 সহ একটি বাগ?

উত্তর:


490

সম্পত্তিটিকে clipsToBoundsসত্যে সেট করুন

addMessageLabel.clipsToBounds = true

3
আইওএস 7 এ আপনাকে কেন করতে হবে না তা নিশ্চিত নন তবে আইওএস 7.1 এ করতে হবে তবে এটি কার্যকর হয়েছে! ধন্যবাদ
মাইক ভি

11
না, অদ্ভুত নয় ... কেবল "অগ্রগতি" ... <হুম্ফ> মনে হচ্ছে, ইউিলাবেলের ক্লিপ টোবাউন্ডস এখন অন্যান্য ইউআইভিউয়ের মতো ফালসে ডিফল্ট হয়ে গেছে। অ্যাপল সম্ভবত স্টাফগুলি আরও সুসংগত করার চেষ্টা করছে। আমারও ঠিক একই সমস্যা ছিল।
লেসেলি গডউইন

2
@ ক্রিস্টোফারকিং এই বিষয়ে আমি কোনও ডকুমেন্টেশন খুঁজে পাইনি, তবে এটি আমার দৃশ্যেও কাজ করেছে, অবাক করে দিয়েছি :)
রাহেল সাদিক

3
স্ট্যাক ওভারফ্লো জন্য বিকাশকারীদের ধন্যবাদ।
scrrr

1
ধন্যবাদ বন্ধু আপনি আমার সময় বাঁচিয়েছেন (ওয়াই)।
আখতার

66

আমি মনে করি কোণার ব্যাসার্ধ সেট করার সর্বোত্তম উপায় হ'ল:

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

এবং নিশ্চিত হয়ে নিন যে "ক্লিপ সাবভিউ" চেক করা হয়েছে:

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

"ক্লিপ সাবভিউ" পরীক্ষা করা কোডের সমান addMessageLabel.clipsToBounds = YES;


অবশ্যই, সবচেয়ে সহজ উপায়
মারিও কারভালহো

এই হল সর্বোত্তম উপায়। আইওএস 8+ এবং এক্সকোড 7.2 দিয়ে পরীক্ষিত।
লাইফিসফু

যদি কেউ এখানে সন্ধান করে আসে এবং এটি কাজ করে না: আপনি যদি "কোণার রেডিওস" সম্পত্তিটি রেখে দেন তবে এটি iOS10 + এ কাজ করবে। আইওএস 9-তে এটি "লেয়ারকর্নাররেডিয়াস" হতে হবে
নাথান ব্যারেটো

ক্লিপটোবাউন্ডসও ব্যবহারকারী সংজ্ঞায়িত রানটাইম অ্যাট্রিবিউটসগুলিতে (স্তরকর্নারডিয়াসের সমান) সেট করা যেতে পারে: এটি কী হওয়া উচিত পথ: ক্লিপস টোবাউন্ডস, টাইপ: বুলিয়ান, মান: সত্য
Chuy47

24

অনুসরণ চেষ্টা করুন,

[[addMessageLabel layer] setCornerRadius:5.0f];
[[addMessageLabel layer] setMasksToBounds:YES];

//or
[addMessageLabel setClipsToBounds:YES];

দ্রুতগতি

addMessageLable.layer.cornerRadius = 5.0
addMessageLable.layer.masksToBounds = true

//or
addMessageLable.layer.clipsToBounds = true

5

আমার বিষয়টি কিছুটা আলাদা ছিল।

আমি যখন করেনি না btn.clipsToBounds = true

আমি করছিলাম না:

btn.layer.cornerRadius = 20

কারণ আমার পর্দার বিভিন্ন আকার ছিল। পরিবর্তে আমি এই উত্তর অনুসরণ করে এবং করেছি:

override func layoutSubviews() {
    seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
}

এটি যুক্ত ছিল না কারণ আমি যুক্ত করতে ভুলে গেছি super.layoutSubviews()। সঠিক কোডটি হ'ল:

override func layoutSubviews() {
    super.layoutSubviews()
    seeMoreButton.layer.cornerRadius = seeMoreButton.bounds.size.height / 2
}

ধন্যবাদ একটি টন .. শুধুমাত্র এই উত্তরটি আমার পক্ষে কাজ করেছে। সুইফট 3, এক্সকোড 8.3.3
স্কাইওয়াকার

3

আমি নীচের একটিকে চেষ্টা করেছি এবং আমি একটি সফল আউটপুট পেয়েছি।

yourlabelname.layer.cornerRadius = 10.0f;
[yourlabelname setClipsToBounds:YES];

অন্য কিছু আছে যা আপনাকে থামিয়ে দিচ্ছে?


আইওএস 7.1 এর আগে, clipsToBoundsডিফল্ট হয়েছিল YES, সুতরাং লাইনটি [yourlabelname setClipsToBounds:YES];আমার মূল কোডটিতে ছিল না।
মাইক ভি

0
 //works perfect in Swift 2.0 for a circular or round image          


@IBOutlet var theImage: UIImageView!
        override func viewDidLoad() {
            super.viewDidLoad()
    //Make sure the width and height are same
            self.theImage.layer.cornerRadius = self.theImage.frame.size.width / 2
            self.theImage.layer.borderWidth = 2.0
            self.theImage.layer.borderColor = UIColor.whiteColor().CGColor
            self.theImage.clipsToBounds = true

        }

0
yourlabelname.layer.cornerRadius = yourlabelname.frame.size.width/2;
[yourlabelname setClipsToBounds:YES];

নিশ্চিত করুন যে আপনি উপযুক্ত ডিপ্লোয়মেন্ট টার্গেট দিয়ে পরীক্ষা করছেন।


0

ইউআইভিউর জন্য এক্সটেনশন হিসাবে নিম্নলিখিত কোডটি যুক্ত করুন

//// Story board Extra Feature for create border radius, border width and border Color
extension UIView {
    /// corner radius
    @IBInspectable var borderColor: UIColor? {
        set {
            layer.borderColor = newValue!.cgColor
        }
        get {
            if let color = layer.borderColor {
                return UIColor(cgColor: color)
            } else {
                return nil
            }
        }
    }
    @IBInspectable var borderWidth: CGFloat {
        set {
            layer.borderWidth = newValue
        }
        get {
            return layer.borderWidth
        }
    }
    @IBInspectable var cornerRadius: CGFloat {
        set {
            layer.cornerRadius = newValue
            clipsToBounds = newValue > 0
        }
        get {
            return layer.cornerRadius
        }
    }
}

এর পরে আপনি ইন্টারফেস বিল্ডার নিজেই নিম্নলিখিত বৈশিষ্ট্যগুলি পাবেন।

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

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