ইউআইএসট্যাকভিউয়ের পটভূমির রঙ কীভাবে পরিবর্তন করবেন?


158

UIStackViewস্টোরিবোর্ড ইন্সপেক্টরটিতে আমি ব্যাকগ্রাউন্ডটি পরিষ্কার থেকে সাদা হয়ে যাওয়ার চেষ্টা করেছি , তবে সিম্যুলেট করার সময়, স্ট্যাক ভিউটির ব্যাকগ্রাউন্ড রঙটি এখনও একটি পরিষ্কার রঙ ধারণ করে।
আমি কীভাবে একটি এর পটভূমির রঙ পরিবর্তন করতে পারি UIStackView?


2
এই তাই সেই বিরল ক্ষেত্রে, যেখানে উত্তর কেবল হয় এক সম্পূর্ণভাবে ভুল । আপনি কেবল একটি ... পটভূমি দেখুন। এটা খুবই সাধারণ. উদাহরণস্বরূপ নিবন্ধ এটা ব্যাখ্যা করে: useyourloaf.com/blog/stack-view-background-color
Fattie

@ ফ্যাটি এটি কাজ করেছে! আপনি কি এটি একটি উত্তর হিসাবে যুক্ত করতে পারেন?
এবসিন

হাই @ অ্যাবসিন - কুরদু এবং মারিয়েনার্নির উত্তরগুলি নিখুঁত।
ফ্যাটি

হাহাহা, এটি দুর্দান্ত, নন-রেন্ডারিং উপাদানটির ব্যাকগ্রাউন্ড রঙের সম্পত্তি রয়েছে
ব্র্যাড টমাস

উত্তর:


289

আপনি এটি করতে পারবেন না - UIStackViewএটি একটি অঙ্কনবিহীন দৃশ্য, যার অর্থ drawRect()কখনও কখনও বলা হয় না এবং এর পটভূমির রঙ উপেক্ষা করা হয়। আপনি যদি মরিয়া হয়ে পটভূমির রঙ চান, তবে স্ট্যাক ভিউটিকে অন্যের মধ্যে রাখার এবং সেই দৃশ্যটিকে UIViewএকটি পটভূমির রঙ দেওয়ার বিষয়ে বিবেচনা করুন।

এখানে থেকে রেফারেন্স ।

সম্পাদনা করুন:

আপনি এখানেUIStackView উল্লিখিত হিসাবে বা এই উত্তরে (নীচে) একটি সাবভিউ যুক্ত করতে পারেন এবং এটিতে একটি রঙ নির্ধারণ করতে পারেন। তার জন্য নীচে দেখুন :extension

extension UIStackView {
    func addBackground(color: UIColor) {
        let subView = UIView(frame: bounds)
        subView.backgroundColor = color
        subView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        insertSubview(subView, at: 0)
    }
}

এবং আপনি এটি ব্যবহার করতে পারেন:

stackView.addBackground(color: .red)

12
এটা বেশ ভুল । এটি একটি বিরল ঘটনা যেখানে হ্যাকিংউইথসুইফ্টে পলের লেখাটি সম্পূর্ণ ভুল । আপনি কেবল আরেকটি দৃশ্য যোগ (যা না এক ব্যবস্থা মতামত) এবং যে উত্তর।
ফ্যাটি

11
: এখানে একটি নিবন্ধ এটি ব্যাখ্যা করে, এটি তুচ্ছ হয় useyourloaf.com/blog/stack-view-background-color
Fattie

1
তারপরে স্ট্যাকভিউয়ের ব্যবহার কী, আমরা কী আমাদের দৃষ্টিভঙ্গিগুলিকে কেবল অন্য দৃশ্যের সাথে যুক্ত করতে পারি না এবং এটি আনুভূমিকভাবে বা উল্লম্বভাবে সারিবদ্ধ করতে বাধা দিতে পারি না এবং পুরোপুরি স্ট্যাকভিউ এড়াতে পারি না। স্ট্যাকভিউ এবং ইউআইভিউ-র ভিতরে স্ট্যাকভিউ থাকা এবং তারপরে এই উপাদানটিকে আমাদের উপাদানগুলিতে যুক্ত করা কি হাস্যকর নয়?
শিবাম পোখরিয়াল

কমপক্ষে, drawRect()বলা হয়। আপনি কেবল সাবক্লাসিং করে পরীক্ষা করতে পারেনUIStackView
khcpietro

দুর্দান্ত উত্তর। আমি এটিকে কিছুটা প্রসারিত করেছি, কারণ আমার অ্যাপটিতে আমার বেশ কয়েকটি থিম রয়েছে যাতে পটভূমির রঙ পরিবর্তন হতে পারে। প্রতিবার রঙ বদলে একটি সংক্ষিপ্ত যোগ করা রোধ করার জন্য, আমি সাবভিউটির ট্যাগটি 123 এ পরিবর্তন করি, তারপরে প্রতিবার ফাংশনটি বলা হয় আমি প্রথমে যাচাই করে দেখি যে কোনও সাবউভিউতে 123 ট্যাগ রয়েছে কিনা if let backgroundView = self.subviews.first(where: {$0.tag == 123}) {। যদি তা হয় তবে আমি সেই দৃশ্যের পটভূমির রঙ পরিবর্তন করি।
গাইড

47

আমি এটি এইভাবে করি:

@IBDesignable
class StackView: UIStackView {
   @IBInspectable private var color: UIColor?
    override var backgroundColor: UIColor? {
        get { return color }
        set {
            color = newValue
            self.setNeedsLayout() // EDIT 2017-02-03 thank you @BruceLiu
        }
    }

    private lazy var backgroundLayer: CAShapeLayer = {
        let layer = CAShapeLayer()
        self.layer.insertSublayer(layer, at: 0)
        return layer
    }()
    override func layoutSubviews() {
        super.layoutSubviews()
        backgroundLayer.path = UIBezierPath(rect: self.bounds).cgPath
        backgroundLayer.fillColor = self.backgroundColor?.cgColor
    }
}

একটি যাদুমন্ত্র মত কাজ করে


ব্যাকগ্রাউন্ড কালার গেট / সেট পদ্ধতি সহ আপডেট হওয়া উত্তর সহ স্টোরিবোর্ডে ব্যবহার করার সময় এটি আমার পক্ষে কাজ করে না। : - / (আইওএস 10.2.1,
এক্সকোড

দুঃখিত, আমি এটি বুঝতে পেরেছি। ইন্টারফেস বিল্ডার ক্লাসের নীচে "মডিউল" ক্ষেত্রটি রেখে গেছে তাই এটি লোড হয়নি। এটি ঠিক করুন, তারপরে নিয়ামকের ভিউডিগ্রাউন্ড সেট করুন এবং এটি স্থির করুন D
webjprgm

1
এছাড়াও আপনার ক্লাসের আইবিডিজিনেবল করুন -> @IBDesignable class StackViewযা আপনাকে স্টোরি বোর্ডে ডিজাইনের অনুমতি দেবে। রান চলাকালীন সময়ে পটভূমি যুক্ত করার জন্য আমি খুব বেশি যত্নশীল না, তবে স্টোরিভিউর ডিজাইন করা খুব শক্ত যখন গল্পের বোর্ডে কোনও
ফর্ম নেই

@ ফ্যাটি কে কেন এটি একটি খারাপ দৃষ্টিভঙ্গি?
আরবিটুর

অরবিটুর :) খুব খুব খারাপ কিছুটা :) :) তবে স্তরগুলির সাথে খেলার দরকার নেই, যেহেতু আপনি কেবল একটি অন্য দৃষ্টিভঙ্গি সংযোজন করেছেন (তবে একটি সাজানো নয়)
ফ্যাটি

34

UIStackViewএটি একটি নন-রেন্ডারিং উপাদান, এবং এর মতো এটি স্ক্রিনে আঁকায় না। এর অর্থ হ'ল backgroundColorমূলত পরিবর্তন করা কিছুই করে না। আপনি যদি পটভূমির রঙ পরিবর্তন করতে চান তবে কেবল UIViewনীচের মত একটি সাবউভিউ (এটি সাজানো নেই) হিসাবে এটিতে একটি যুক্ত করুন :

extension UIStackView {

    func addBackground(color: UIColor) {
        let subview = UIView(frame: bounds)
        subview.backgroundColor = color
        subview.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        insertSubview(subview, at: 0)
    }

}

1
এই উত্তরটিও নিখুঁত। ব্যক্তিগতভাবে আমি (kurrodu উত্তর হিসেবে) চারটি সীমাবদ্ধতা রাখা
Fattie

1
ধরে নিচ্ছি আপনি পটভূমির রঙ পরিবর্তন করবেন না এটি ঠিক আছে। তবে আপনি যদি এই পদ্ধতিটিকে একাধিকবার কল করেন তবে আগের বারের মতামতগুলি এখনও রয়ে যায়। এছাড়াও এই পদ্ধতির সাহায্যে পটভূমির রঙ সহজেই সরানোর কোনও উপায় নেই।
কেজি

11

সম্ভবত সবচেয়ে সহজ, আরও পঠনযোগ্য এবং কম হ্যাকি উপায় হ'ল এটিতে এম্বেড UIStackViewকরা UIViewএবং পটভূমির রঙটি দর্শনে সেট করা।

এবং এই দুটি দর্শনের মধ্যে স্বয়ংক্রিয় বিন্যাসের সীমাবদ্ধতা সঠিকভাবে কনফিগার করতে ভুলবেন না… ;-)


2
হ্যাঁ তবে তাতে মজা কোথায়? :-)
webjprgm

1
এতদূর সেরা সমাধান - এটি কোডের লাইন ছাড়াই একা ইন্টারফেস বিল্ডারে কাজ করে
ভ্লাদিমির গ্রিগোরভ

10

পিটিফং সঠিক, একটি ব্যাকগ্রাউন্ড রঙের স্ট্যাকভিউ পেতে নীচের মতো কিছু করুন ...

  let bg = UIView(frame: stackView.bounds)
  bg.autoresizingMask = [.flexibleWidth, .flexibleHeight]
  bg.backgroundColor = UIColor.red

  stackView.insertSubview(bg, at: 0)

এটি আপনাকে একটি স্ট্যাকভিউ দেবে যার সামগ্রীগুলি একটি লাল পটভূমিতে স্থাপন করা হবে।

স্ট্যাকভিউতে প্যাডিং যুক্ত করতে যাতে সামগ্রীগুলি প্রান্তগুলি দিয়ে প্রবাহিত না হয়, নিম্নলিখিত কোডে বা স্টোরিবোর্ডে যুক্ত করুন ...

  stackView.isLayoutMarginsRelativeArrangement = true
  stackView.layoutMargins = UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8)

2
আমার স্ট্যাকভিউ.ইন.সেটসউউভিউ (বিজি, নীচে সাবভিউ: স্ট্যাকভিউ.আরঞ্জেডসুবভিউস [0]) ব্যবহার করা দরকার অন্যথায় স্ট্যাকের উপরে রঙিন ভিউটি রাখা হয়েছিল।
আইসাইবারপল

এই উত্তরটি প্রায় সঠিক, তবে ভুল - আপনি কেবল শূন্যে সন্নিবেশ ব্যবহার করেন।
ফ্যাটি

1
@ iCyberPaul - আপনি কেবল শূন্যে সন্নিবেশ ব্যবহার করুন।
ফ্যাটি

নোট স্যাম্পল কোডটি 0 এ doোকানোর জন্য সম্পাদিত যেমন ভিউটি হায়ারার্কিতে শেষ। (আমি বলেছি নিম্নলিখিতগুলির মতো কিছু করুন ...)
মাইকেল লং

8

টিএল; ডিআর: এটি করার আনুষ্ঠানিক উপায় হ'ল addSubview:পদ্ধতিটি ব্যবহার করে স্ট্যাক ভিউতে একটি খালি ভিউ যুক্ত করা এবং পরিবর্তে যুক্ত ভিউ ব্যাকগ্রাউন্ড সেট করা।

ব্যাখ্যা: ইউআইএসট্যাকভিউ একটি বিশেষ ইউআইভিউ উপক্লাস যা কেবল লেআউটটি অঙ্কন করে না। এর অনেকগুলি সম্পত্তি যথারীতি কাজ করবে না। এবং যেহেতু ইউআইএসট্যাকভিউ কেবল তার সাজানো সাবউভিউগুলি কেবলমাত্র বিন্যাস করবে, এর অর্থ এই যে আপনি কেবল এটির সাথে কোনও ইউআইভিউ addSubview:পদ্ধতিতে যুক্ত করতে পারেন , তার সীমাবদ্ধতা এবং পটভূমির রঙ সেট করতে পারেন । আপনি ডাব্লুডাব্লুডিসি অধিবেশন থেকে উদ্ধৃত যা চান তা অর্জনের এটি সরকারী উপায়


3

এটি আমার জন্য সুইফট 3 এবং আইওএস 10 এ কাজ করে:

let stackView = UIStackView()
let subView = UIView()
subView.backgroundColor = .red
subView.translatesAutoresizingMaskIntoConstraints = false
stackView.addSubview(subView) // Important: addSubview() not addArrangedSubview()

// use whatever constraint method you like to 
// constrain subView to the size of stackView.
subView.topAnchor.constraint(equalTo: stackView.topAnchor).isActive = true
subView.bottomAnchor.constraint(equalTo: stackView.bottomAnchor).isActive = true
subView.leftAnchor.constraint(equalTo: stackView.leftAnchor).isActive = true
subView.rightAnchor.constraint(equalTo: stackView.rightAnchor).isActive = true

// now add your arranged subViews...
stackView.addArrangedSubview(button1)
stackView.addArrangedSubview(button2)

3

আইওএস 10 তে, @ আরবিটরের উত্তরের রঙ সেট হওয়ার পরে একটি সেটনিডস লেআউট দরকার। এই পরিবর্তনটি যা প্রয়োজন:

override var backgroundColor: UIColor? {
    get { return color }
    set { 
        color = newValue
        setNeedsLayout()
    }
}

আপনি কীভাবে জিনিসগুলি সেট আপ করেন তার উপর নির্ভর করে, আপনি যদি এটি সেট করার backgroundColorআগে এটি সেট করেন তবে এটি superviewআইওএস 10 এবং আইওএস 9 এ কাজ করে, তবে, আপনি যদি backgroundColorতার layoutSubviews()ফাংশন বলা হওয়ার পরে আপডেট করেন তবে backgroundColorএটি backgroundLayerঅর্থের কোনও দৃশ্যমান আপডেট আপডেট করে না। এখনই স্থির, এটিকে নির্দেশ করার জন্য ধন্যবাদ।
আরবিটুর

2

স্ট্যাক ভিউ ব্যাকগ্রাউন্ড রঙ যুক্ত করার জন্য এখানে একটি সংক্ষিপ্ত ওভারভিউ দেওয়া আছে।

class RevealViewController: UIViewController {

    @IBOutlet private weak var rootStackView: UIStackView!

বৃত্তাকার কোণগুলির সাথে ব্যাকগ্রাউন্ড ভিউ তৈরি করা

private lazy var backgroundView: UIView = {
    let view = UIView()
    view.backgroundColor = .purple
    view.layer.cornerRadius = 10.0
    return view
}()

এটিকে ব্যাকগ্রাউন্ড হিসাবে প্রদর্শিত করার জন্য আমরা এটিকে সূচক 0 এ মূল স্ট্যাক ভিউর সাবউভিউ অ্যারেতে যুক্ত করব That এটি স্ট্যাক ভিউটির সাজানো দর্শনগুলির পিছনে রাখে।

private func pinBackground(_ view: UIView, to stackView: UIStackView) {
    view.translatesAutoresizingMaskIntoConstraints = false
    stackView.insertSubview(view, at: 0)
    view.pin(to: stackView)
}

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

public extension UIView {
  public func pin(to view: UIView) {
    NSLayoutConstraint.activate([
      leadingAnchor.constraint(equalTo: view.leadingAnchor),
      trailingAnchor.constraint(equalTo: view.trailingAnchor),
      topAnchor.constraint(equalTo: view.topAnchor),
      bottomAnchor.constraint(equalTo: view.bottomAnchor)
      ])
  }
}

pinBackgroundথেকে কলviewDidLoad

override func viewDidLoad() {
  super.viewDidLoad()
  pinBackground(backgroundView, to: rootStackView)
}

থেকে রেফারেন্স: এখানে


2

আপনি একটি ছোট এক্সটেনশন করতে পারে UIStackView

extension UIStackView {
    func setBackgroundColor(_ color: UIColor) {
        let backgroundView = UIView(frame: .zero)
        backgroundView.backgroundColor = color
        backgroundView.translatesAutoresizingMaskIntoConstraints = false
        self.insertSubview(backgroundView, at: 0)
        NSLayoutConstraint.activate([
            backgroundView.topAnchor.constraint(equalTo: self.topAnchor),
            backgroundView.leadingAnchor.constraint(equalTo: self.leadingAnchor),
            backgroundView.bottomAnchor.constraint(equalTo: self.bottomAnchor),
            backgroundView.trailingAnchor.constraint(equalTo: self.trailingAnchor)
            ])
    }
}

ব্যবহার:

yourStackView.setBackgroundColor(.black)

1

জামারিন, সি # সংস্করণ:

var stackView = new UIStackView { Axis = UILayoutConstraintAxis.Vertical };

UIView bg = new UIView(stackView.Bounds);
bg.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;
bg.BackgroundColor = UIColor.White;
stackView.AddSubview(bg);

0
UIStackView *stackView;
UIView *stackBkg = [[UIView alloc] initWithFrame:CGRectZero];
stackBkg.backgroundColor = [UIColor redColor];
[self.view insertSubview:stackBkg belowSubview:stackView];
stackBkg.translatesAutoresizingMaskIntoConstraints = NO;
[[stackBkg.topAnchor constraintEqualToAnchor:stackView.topAnchor] setActive:YES];
[[stackBkg.bottomAnchor constraintEqualToAnchor:stackView.bottomAnchor] setActive:YES];
[[stackBkg.leftAnchor constraintEqualToAnchor:stackView.leftAnchor] setActive:YES];
[[stackBkg.rightAnchor constraintEqualToAnchor:stackView.rightAnchor] setActive:YES];

0

সাবক্লাস ইউআইএসট্যাকভিউ

class CustomStackView : UIStackView {

private var _bkgColor: UIColor?
override public var backgroundColor: UIColor? {
    get { return _bkgColor }
    set {
        _bkgColor = newValue
        setNeedsLayout()
    }
}

private lazy var backgroundLayer: CAShapeLayer = {
    let layer = CAShapeLayer()
    self.layer.insertSublayer(layer, at: 0)
    return layer
}()

override public func layoutSubviews() {
    super.layoutSubviews()
    backgroundLayer.path = UIBezierPath(rect: self.bounds).cgPath
    backgroundLayer.fillColor = self.backgroundColor?.cgColor
}
}

তারপরে আপনার ক্লাসে

yourStackView.backgroundColor = UIColor.lightGray

0

আপনি স্ট্যাকভিউতে একটি সাবলেয়ার sertোকাতে পারেন, এটি আমার কাজ করে:

@interface StackView ()
@property (nonatomic, strong, nonnull) CALayer *ly;
@end

@implementation StackView

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        _ly = [CALayer new];
        [self.layer addSublayer:_ly];
    }
    return self;
}

- (void)setBackgroundColor:(UIColor *)backgroundColor {
    [super setBackgroundColor:backgroundColor];
    self.ly.backgroundColor = backgroundColor.CGColor;
}

- (void)layoutSubviews {
    self.ly.frame = self.bounds;
    [super layoutSubviews];
}

@end

0

সাবক্লাসিং ইউআই উপাদানগুলিতে আমি কিছুটা সংশয়ী। এইভাবে আমি এটি ব্যবহার করছি,

struct CustomAttributeNames{
        static var _backgroundView = "_backgroundView"
    }

extension UIStackView{

var backgroundView:UIView {
        get {
            if let view = objc_getAssociatedObject(self, &CustomAttributeNames._backgroundView) as? UIView {
                return view
            }
            //Create and add
            let view = UIView(frame: .zero)
            view.translatesAutoresizingMaskIntoConstraints = false
            insertSubview(view, at: 0)
            NSLayoutConstraint.activate([
              view.topAnchor.constraint(equalTo: self.topAnchor),
              view.leadingAnchor.constraint(equalTo: self.leadingAnchor),
              view.bottomAnchor.constraint(equalTo: self.bottomAnchor),
              view.trailingAnchor.constraint(equalTo: self.trailingAnchor)
            ])

            objc_setAssociatedObject(self,
                                     &CustomAttributeNames._backgroundView,
                                     view,
                                     objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)

            return view
        }
    }
}

এবং এটি ব্যবহার,

stackView.backgroundView.backgroundColor = .white
stackView.backgroundView.layer.borderWidth = 2.0
stackView.backgroundView.layer.borderColor = UIColor.red.cgColor
stackView.backgroundView.layer.cornerRadius = 4.0

দ্রষ্টব্য: এই পদ্ধতির সাথে, আপনি যদি সীমানা সেট করতে চান, আপনাকে layoutMarginsস্ট্যাকভিউতে সেট করতে হবে যাতে সীমান্তটি দৃশ্যমান হয়।


0

আপনি স্ট্যাকভিউতে পটভূমি যোগ করতে পারবেন না। তবে আপনি যা করতে পারেন তা হল একটি দৃশ্যে স্ট্যাকভিউ যুক্ত করা এবং তারপরে দৃশ্যের ব্যাকগ্রাউন্ড সেট করা কাজটি সম্পন্ন করবে। * এটি স্ট্যাকভিউয়ের প্রবাহকে বাধাগ্রস্ত করবে না। আশা করি এটি সাহায্য করবে।


0

আমরা এর StackViewমতো একটি কাস্টম ক্লাস রাখতে পারি :

class StackView: UIStackView {
    lazy var backgroundView: UIView = {
        let otherView = UIView()
        addPinedSubview(otherView)
        return otherView
    }()
}

extension UIView {
    func addPinedSubview(_ otherView: UIView) {
        addSubview(otherView)
        otherView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            otherView.trailingAnchor.constraint(equalTo: trailingAnchor),
            otherView.topAnchor.constraint(equalTo: topAnchor),
            otherView.heightAnchor.constraint(equalTo: heightAnchor),
            otherView.widthAnchor.constraint(equalTo: widthAnchor),
        ])
    }
}

এবং এটি এর মতো ব্যবহার করা যেতে পারে:

let stackView = StackView()
stackView.backgroundView.backgroundColor = UIColor.lightGray

func addBackground(color: UIColor)অন্যদের পরামর্শ অনুসারে এটি এক্সটেনশন ফাংশন যুক্ত করার চেয়ে কিছুটা ভাল । ব্যাকগ্রাউন্ড ভিউটি অলস যাতে আপনি প্রকৃতপক্ষে কল না করা পর্যন্ত এটি তৈরি হবে না stackView.backgroundView.backgroundColor = ...। এবং একাধিকবার ব্যাকগ্রাউন্ড রঙ সেট / পরিবর্তন করার ফলে স্ট্যাক ভিউতে একাধিক সাবভিউ sertedোকানো হবে না।


0

আপনি যদি নিজেকে ডিজাইনার থেকে নিয়ন্ত্রণ করতে চান তবে স্ট্যাক ভিউতে এই এক্সটেনশনটি যুক্ত করুন

 @IBInspectable var customBackgroundColor: UIColor?{
     get{
        return backgroundColor
     }
     set{
        backgroundColor = newValue
         let subview = UIView(frame: bounds)
         subview.backgroundColor = newValue
         subview.autoresizingMask = [.flexibleWidth, .flexibleHeight]
         insertSubview(subview, at: 0)
     }
 }

-1

আপনি এটি এইভাবে করতে পারে:

stackView.backgroundColor = UIColor.blue

ওভাররাইড করার জন্য একটি এক্সটেনশন সরবরাহ করে backgroundColor:

extension UIStackView {

    override open var backgroundColor: UIColor? {

        get {
            return super.backgroundColor
        }

        set {

            super.backgroundColor = newValue

            let tag = -9999
            for view in subviews where view.tag == tag {
                view.removeFromSuperview()
            }

            let subView = UIView()
            subView.tag = tag
            subView.backgroundColor = newValue
            subView.translatesAutoresizingMaskIntoConstraints = false
            self.addSubview(subView)
            subView.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
            subView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
            subView.leftAnchor.constraint(equalTo: self.leftAnchor).isActive = true
            subView.rightAnchor.constraint(equalTo: self.rightAnchor).isActive = true
        }

    }

}

আপনি, subview সঠিক অবস্থান নির্ধারণ করে এ সন্নিবেশ ব্যবহার করতে হবে
Fattie

-1

বক্সভিউ চেষ্টা করুন । এটি ইউআইএসট্যাকভিউয়ের মতো, তবে এটি রেন্ডারিং করে এবং আরও বিন্যাসের বিকল্পগুলিকে সমর্থন করে।

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