অ্যাপল ইউআইএসট্যাকভিউ পরিচয় করায় এটি কাজটি অনেক সহজ করে তুলেছে।
পদ্ধতি 1: নিব / স্টোরিবোর্ড ব্যবহার:
আপনাকে কেবল ইন্টারফেস বিল্ডারে তিনটি ভিউ যুক্ত করতে হবে এবং তাদের স্ট্যাকভিউতে এম্বেড করতে হবে
এক্সকোড ► সম্পাদক ► এম্বেড করুন ► স্ট্যাকভিউ
স্ট্যাকভিউ নির্বাচন করুন এবং নিরাপদআরিয়ার সাথে শীর্ষস্থানীয়, অনুসরণকারী, শীর্ষ এবং সমান উচ্চতার প্রতিবন্ধকতা দিন
অনুপাত পরিদর্শনকারী অঞ্চলটি ক্লিক করুন এবং
আনুপাতিকভাবে পূরণ করতে স্ট্যাকভিউ অনুভূমিক এবং বিতরণ সেট করুন
[ 3
শীর্ষস্থানীয়, পিছনে, উপরে, নীচের দিকের সাথে নীচে দিয়ে তিনটি দৃশ্যের সীমাবদ্ধতা দিন।
পদ্ধতি 2: প্রোগ্রামিয়ালি:
import UIKit
class StackViewProgramatically: UIViewController {
var propotionalStackView: UIStackView!
///Initially defining three views
let redView: UIView = {
let view = UIView()//taking 42 % initially
view.frame = CGRect(x: 0, y: 0, width: 42 * UIScreen.main.bounds.width/100, height: UIScreen.main.bounds.height)
view.backgroundColor = .red
return view
}()
let greenView: UIView = {
let view = UIView()//taking 42* initially
view.frame = CGRect(x: 42 * UIScreen.main.bounds.width/100, y: 0, width: 25 * UIScreen.main.bounds.width/100, height: UIScreen.main.bounds.height)
view.backgroundColor = .green
return view
}()
let blueView: UIView = {
let view = UIView()//taking 33*initially
view.frame = CGRect(x: 67 * UIScreen.main.bounds.width/100, y: 0, width: 33 * UIScreen.main.bounds.width/100, height: UIScreen.main.bounds.height)
view.backgroundColor = .blue
return view
}()
///Changing UIView frame to supports landscape mode.
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
DispatchQueue.main.async {
self.redView.frame = CGRect(x: 0, y: 0, width: 42 * self.widthPercent, height: self.screenHeight)
self.greenView.frame = CGRect(x: 42 * self.widthPercent, y: 0, width: 25 * self.widthPercent, height: self.screenHeight)
self.blueView.frame = CGRect(x: 67 * self.widthPercent, y: 0, width: 33 * self.widthPercent, height: self.screenHeight)
}
}
override func viewDidLoad() {
super.viewDidLoad()
//Adding subViews to the stackView
propotionalStackView = UIStackView()
propotionalStackView.addSubview(redView)
propotionalStackView.addSubview(greenView)
propotionalStackView.addSubview(blueView)
propotionalStackView.spacing = 0
///setting up stackView
propotionalStackView.axis = .horizontal
propotionalStackView.distribution = .fillProportionally
propotionalStackView.alignment = .fill
view.addSubview(propotionalStackView)
}
}
//MARK: UIscreen helper extension
extension NSObject {
var widthPercent: CGFloat {
return UIScreen.main.bounds.width/100
}
var screenHeight: CGFloat {
return UIScreen.main.bounds.height
}
}
আউটপুট:
ল্যান্ডস্কেপ এবং প্রতিকৃতি নিয়ে কাজ করে
ডেমো প্রকল্প - https://github.com/janeshsutharios/UIStackView-with-strats
https://developer.apple.com/videos/play/wwdc2015/218/