ইন্টারফেস বিল্ডার থেকে সরাসরি ইউআইভিউ সীমানা বৈশিষ্ট্য (রঙ, বেধ, ইত্যাদি ...) নিয়ন্ত্রণ করা সম্ভব বা আমি কেবল এটি প্রোগ্রামিকভাবেই করতে পারি?
ইন্টারফেস বিল্ডার থেকে সরাসরি ইউআইভিউ সীমানা বৈশিষ্ট্য (রঙ, বেধ, ইত্যাদি ...) নিয়ন্ত্রণ করা সম্ভব বা আমি কেবল এটি প্রোগ্রামিকভাবেই করতে পারি?
উত্তর:
আসলে আপনি ইন্টারফেস বিল্ডারের মাধ্যমে একটি ভিউ স্তরের কয়েকটি বৈশিষ্ট্য সেট করতে পারেন। আমি জানি যে আমি এক্সকোডের মাধ্যমে একটি স্তরের বর্ডারউইথ এবং কর্নার রেডিয়াস সেট করতে পারি। বর্ডার কালার কাজ করে না, সম্ভবত লেয়ারটি ইউআইক্লোরের পরিবর্তে সিজি কালার চায়।
আপনি সংখ্যার পরিবর্তে স্ট্রিংস ব্যবহার করতে পারেন, তবে এটি কার্যকর!
layer.cornerRadius
layer.borderWidth
layer.borderColor
আপডেট: স্তর.masksToBounds = সত্য

রিচ 86 মান এর উত্তর সঠিক, তবে আপনি প্রক্সি বৈশিষ্ট্য যেমন স্তর.বর্ডার কালার হিসাবে বিভাগগুলি ব্যবহার করতে পারেন can ( কনভেনশনাল সি কোকোপোড থেকে)
CALayer + + XibConfiguration.h:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer(XibConfiguration)
// This assigns a CGColor to borderColor.
@property(nonatomic, assign) UIColor* borderUIColor;
@end
CALayer + + XibConfiguration.m:
#import "CALayer+XibConfiguration.h"
@implementation CALayer(XibConfiguration)
-(void)setBorderUIColor:(UIColor*)color
{
self.borderColor = color.CGColor;
}
-(UIColor*)borderUIColor
{
return [UIColor colorWithCGColor:self.borderColor];
}
@end

layer.borderUIColor
এক্সকোডে নয়, রানটাইমের সময় ফলাফলটি সুস্পষ্ট হবে।
সম্পাদনা : layer.borderWidthনির্বাচিত রঙের সীমানা দেখতে আপনাকে কমপক্ষে 1 এ সেটও করতে হবে।
সুইফট ২.০ এ:
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.CGColor
}
get {
return UIColor(CGColor: self.borderColor!)
}
}
}
সুইফটে 3.0:
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.cgColor
}
get {
return UIColor(cgColor: self.borderColor!)
}
}
}
আইহুলকের একটির অনুরূপ উত্তর, তবে সুইফটে
আপনার প্রকল্পে ইউআইভিউ.উইফট নামের একটি ফাইল যুক্ত করুন (বা কেবল কোনও ফাইলটিতে এটি পেস্ট করুন):
import UIKit
@IBDesignable extension UIView {
@IBInspectable var borderColor: UIColor? {
set {
layer.borderColor = newValue?.cgColor
}
get {
guard let color = layer.borderColor else {
return nil
}
return UIColor(cgColor: color)
}
}
@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
}
}
}
তারপরে এটি ইউটিলিটিস প্যানেলে প্রতিটি বোতাম, চিত্রভিউ, লেবেল ইত্যাদির জন্য ইন্টারফেস বিল্ডারে উপলব্ধ হবে> বৈশিষ্ট্য পরিদর্শক:
দ্রষ্টব্য: সীমান্তটি কেবল রানটাইমে উপস্থিত হবে।
@IBDesignableএক্সটেনশনের শুরু থেকে অপসারণ না করা পর্যন্ত আমি এই পদ্ধতির সাথে ইন্টারফেস বিল্ডার ক্র্যাশ পেয়েছিলাম।
আপনি ইউআইভিউয়ের একটি বিভাগ তৈরি করতে পারেন এবং এটি বিভাগের .h ফাইলটিতে যুক্ত করতে পারেন
@property (nonatomic) IBInspectable UIColor *borderColor;
@property (nonatomic) IBInspectable CGFloat borderWidth;
@property (nonatomic) IBInspectable CGFloat cornerRadius;
এখন এটি .m ফাইলে যুক্ত করুন
@dynamic borderColor,borderWidth,cornerRadius;
এবং এই হিসাবে ভাল। মি ফাইল
-(void)setBorderColor:(UIColor *)borderColor{
[self.layer setBorderColor:borderColor.CGColor];
}
-(void)setBorderWidth:(CGFloat)borderWidth{
[self.layer setBorderWidth:borderWidth];
}
-(void)setCornerRadius:(CGFloat)cornerRadius{
[self.layer setCornerRadius:cornerRadius];
}
এখন আপনি এটি আপনার স্টুবোর্ডে সমস্ত ইউআইভিউ সাবক্লাসের জন্য দেখতে পাবেন (ইউআইএলবেল, ইউআইটিেক্সটফিল্ড, ইউআইআইমেজভিউ ইত্যাদি)

এটি .. .. কোথাও বিভাগ আমদানি করার দরকার নেই, কেবল প্রকল্পের বিভাগের ফাইলগুলি যুক্ত করুন এবং স্টোরিবোর্ডে এই বৈশিষ্ট্যগুলি দেখুন।
জন্য সুইফট 3 এবং 4 , যদি আপনি ব্যবহার সম্মত হন IBInspectableগুলি, এই আছে:
@IBDesignable extension UIView {
@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
}
}
}
যদিও এটি বৈশিষ্ট্যগুলি নির্ধারণ করতে পারে, এটি আসলে আইবিতে প্রতিফলিত হয় না। সুতরাং আপনি যদি আইবিতে মূলত কোড লিখছেন তবে আপনি আপনার উত্স কোডে এটি করতে পারেন
আপনি যদি সময় বাঁচাতে চান তবে UIViewsএকে অপরের উপরে কেবল দুটি ব্যবহার করুন, এর পিছনে একটি সীমানা রঙ এবং সামনের দিকে একটি সীমান্ত প্রভাব প্রদান করুন। আমি মনে করি না এটি হয় একটি মার্জিত সমাধান, তবে অ্যাপল যদি আরও একটু যত্ন করে তবে আপনার এটি করা উচিত নয়।
এটি একেবারেই সম্ভব তখনই যখন আপনি সেট করেন layer.masksToBounds = trueএবং আপনি জিনিসগুলি বিশ্রাম করেন।
এখানে সমস্ত সমাধানের চেষ্টা করার পরেও স্টোরিবোর্ড আমার জন্য সারাক্ষণ কাজ করে না
সুতরাং সর্বদা নিখুঁত উত্তরটি কোডটি ব্যবহার করা হয়, কেবলমাত্র ইউআইভিউয়ের আইবিউটলেট উদাহরণ তৈরি করুন এবং বৈশিষ্ট্য যুক্ত করুন
সংক্ষিপ্ত উত্তর :
layer.cornerRadius = 10
layer.borderWidth = 1
layer.borderColor = UIColor.blue.cgColor
দীর্ঘ উত্তর :
customUIView.layer.cornerRadius = 10
pcustomUIView.layer.borderWidth = 2
customUIView.layer.borderColor = UIColor.blue.cgColor
এই 2 টি সাধারণ লাইন কোড যুক্ত করুন:
self.YourViewName.layer.cornerRadius = 15
self.YourViewName.layer.masksToBounds = true
এটা ঠিক কাজ করবে।