UIButton এবং Gesture Recognizers
iOS অ্যাপ্লিকেশন ডেভেলপমেন্টে UIButton এবং Gesture Recognizers দুটি গুরুত্বপূর্ণ উপাদান যা ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন তৈরি করতে ব্যবহৃত হয়। UIButton হলো একটি বোতাম যা সরাসরি ট্যাপ ইভেন্ট পরিচালনা করতে ব্যবহৃত হয়, আর Gesture Recognizers দিয়ে বিভিন্ন ধরনের জেসচার যেমন ট্যাপ, পিঞ্চ, সুইপ ইত্যাদি পরিচালনা করা যায়।
UIButton
UIButton হলো UIKit-এর একটি ক্লাস যা অ্যাপের ইউজার ইন্টারফেসে বোতাম তৈরি করতে ব্যবহৃত হয়। এটি সাধারণত ট্যাপ ইভেন্ট হ্যান্ডেল করার জন্য ব্যবহার করা হয় এবং বিভিন্ন অ্যাকশন ট্রিগার করতে পারে। UIButton বিভিন্ন স্টেট মেইনটেইন করতে পারে এবং সম্পূর্ণ কাস্টমাইজ করা যায়।
UIButton-এর মৌলিক বৈশিষ্ট্য
UIButton এর টাইপস:
- System: ডিফল্ট সিস্টেম বাটন, সাধারণত স্ট্যান্ডার্ড UI ফিচার সমর্থন করে।
- Custom: সম্পূর্ণ কাস্টমাইজড বোতাম যেখানে টেক্সট, ইমেজ, এবং অন্যান্য স্টাইলিং সমর্থন করে।
- Detail Disclosure, Info Light, Info Dark, Contact Add: নির্দিষ্ট আইকন সহ সিস্টেম বাটন টাইপ।
UIButton এর প্রোপার্টি:
- titleLabel: বোতামের টেক্সট সেট করে।
- setImage: বোতামের ব্যাকগ্রাউন্ড ইমেজ সেট করে।
- backgroundColor: বোতামের ব্যাকগ্রাউন্ডের রঙ।
- setTitleColor: টেক্সটের রঙ পরিবর্তন করে।
UIButton উদাহরণ:
let myButton = UIButton(type: .system)
myButton.setTitle("Click Me", for: .normal)
myButton.setTitleColor(.white, for: .normal)
myButton.backgroundColor = .blue
myButton.frame = CGRect(x: 100, y: 100, width: 200, height: 50)
// Target-Action প্যাটার্ন ব্যবহার করে অ্যাকশন অ্যাড করা
myButton.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
view.addSubview(myButton)
@objc func buttonTapped() {
print("Button was tapped!")
}
UIButton এর স্টেটস:
- Normal: ডিফল্ট স্টেট।
- Highlighted: বোতামটি ট্যাপ করার সময়।
- Disabled: বোতামটি নিষ্ক্রিয় অবস্থায়।
- Selected: বোতামটি নির্বাচন করা হলে।
UIButton এর কাস্টমাইজেশন:
myButton.setTitle("Tapped", for: .highlighted)
myButton.setTitle("Disabled", for: .disabled)
myButton.setImage(UIImage(named: "buttonImage"), for: .normal)
Gesture Recognizers
Gesture Recognizers হলো UIKit-এর একটি কম্পোনেন্ট যা ব্যবহারকারীর জেসচার ইভেন্ট (যেমন, ট্যাপ, পিঞ্চ, সুইপ, রোটেট) শনাক্ত করতে এবং তাদের জন্য নির্দিষ্ট অ্যাকশন ট্রিগার করতে ব্যবহৃত হয়। Gesture Recognizers ব্যবহার করে আরও জটিল ইন্টারঅ্যাকশন এবং অ্যানিমেশন তৈরি করা যায়।
Gesture Recognizers এর ধরন:
- UITapGestureRecognizer: ট্যাপ শনাক্ত করতে ব্যবহৃত হয়।
- UIPinchGestureRecognizer: পিঞ্চ বা জুম শনাক্ত করতে ব্যবহৃত হয়।
- UISwipeGestureRecognizer: স্ক্রিনে সুইপ শনাক্ত করতে ব্যবহৃত হয়।
- UIRotationGestureRecognizer: রোটেশন জেসচার শনাক্ত করতে ব্যবহৃত হয়।
- UILongPressGestureRecognizer: লং প্রেস ইভেন্ট শনাক্ত করতে ব্যবহৃত হয়।
- UIPanGestureRecognizer: ড্র্যাগ বা প্যান শনাক্ত করতে ব্যবহৃত হয়।
Gesture Recognizers উদাহরণ:
উদাহরণ ১: UITapGestureRecognizer
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(viewTapped))
myView.addGestureRecognizer(tapGesture)
@objc func viewTapped() {
print("View was tapped!")
}
উদাহরণ ২: UIPinchGestureRecognizer
let pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(viewPinched))
myView.addGestureRecognizer(pinchGesture)
@objc func viewPinched(_ sender: UIPinchGestureRecognizer) {
if sender.state == .changed {
myView.transform = myView.transform.scaledBy(x: sender.scale, y: sender.scale)
sender.scale = 1.0 // পরবর্তী ইভেন্টের জন্য রিসেট করা হচ্ছে
}
}
উদাহরণ ৩: UISwipeGestureRecognizer
let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(viewSwiped))
swipeGesture.direction = .right // ডান দিকে সুইপ শনাক্ত করা
myView.addGestureRecognizer(swipeGesture)
@objc func viewSwiped() {
print("View was swiped to the right!")
}
Gesture Recognizers এর বৈশিষ্ট্য:
- numberOfTapsRequired: কতবার ট্যাপ করতে হবে তা নির্ধারণ করা।
- numberOfTouchesRequired: কতটি আঙুল টাচ করবে তা নির্ধারণ করা।
- direction (for Swipe): সুইপ কোন দিকে হবে তা নির্ধারণ করা (উদাহরণস্বরূপ,
.left,.rightইত্যাদি)।
Gesture Recognizers এর ব্যবহার:
একই ভিউতে একাধিক Gesture Recognizers যোগ করা যায় এবং তাদের মধ্যে সম্পর্ক নির্ধারণ করা যায়:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(viewTapped))
let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(viewSwiped))
// একই সময়ে উভয় Gesture চললে কোনটি আগে চলবে
tapGesture.require(toFail: swipeGesture)
myView.addGestureRecognizer(tapGesture)
myView.addGestureRecognizer(swipeGesture)
UIButton এবং Gesture Recognizers এর মধ্যে পার্থক্য:
- UIButton: সরাসরি ট্যাপ ইভেন্ট হ্যান্ডেল করতে ব্যবহৃত হয় এবং সাধারণত বোতাম হিসেবে কাজ করে।
- Gesture Recognizers: বিভিন্ন ধরনের জেসচার যেমন ট্যাপ, পিঞ্চ, সুইপ, ড্র্যাগ ইত্যাদি হ্যান্ডেল করে। এগুলো যেকোনো ভিউতে অ্যাপ্লাই করা যায়।
সংক্ষেপে:
- UIButton সাধারণত একক ক্লিক বা ট্যাপ ইভেন্ট হ্যান্ডেল করতে ব্যবহৃত হয়।
- Gesture Recognizers দিয়ে বিভিন্ন জেসচার ইভেন্ট হ্যান্ডেল করে অ্যাপ্লিকেশনকে আরও ইন্টারেক্টিভ করা যায়।
iOS অ্যাপে UIButton এবং Gesture Recognizers এর সঠিক ব্যবহার করে অ্যাপকে আরও ইউজার-ফ্রেন্ডলি এবং ইন্টারেক্টিভ করা যায়।
Read more