আমি আমার অ্যাপ্লিকেশনে একই কার্যকারিতা যুক্ত করতে চাইছিলাম এবং এতগুলি বিভিন্ন টিউটোরিয়াল ( রায়ভেন্ডারলিচ সেরা ডিআইওয়াই সমাধান হ'ল ) পরে আমি জানতে পেরেছিলাম যে অ্যাপলের নিজস্ব UITableViewRowAction
শ্রেণি রয়েছে, যা খুব সহজ।
আপনাকে এতে টেবিলভিউয়ের বয়লারপয়েন্ট পদ্ধতিটি পরিবর্তন করতে হবে:
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {
// 1
var shareAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Share" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in
// 2
let shareMenu = UIAlertController(title: nil, message: "Share using", preferredStyle: .ActionSheet)
let twitterAction = UIAlertAction(title: "Twitter", style: UIAlertActionStyle.Default, handler: nil)
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil)
shareMenu.addAction(twitterAction)
shareMenu.addAction(cancelAction)
self.presentViewController(shareMenu, animated: true, completion: nil)
})
// 3
var rateAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Rate" , handler: { (action:UITableViewRowAction!, indexPath:NSIndexPath!) -> Void in
// 4
let rateMenu = UIAlertController(title: nil, message: "Rate this App", preferredStyle: .ActionSheet)
let appRateAction = UIAlertAction(title: "Rate", style: UIAlertActionStyle.Default, handler: nil)
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil)
rateMenu.addAction(appRateAction)
rateMenu.addAction(cancelAction)
self.presentViewController(rateMenu, animated: true, completion: nil)
})
// 5
return [shareAction,rateAction]
}
আপনি এই সম্পর্কে আরো বিস্তারিত জানতে পারেন এই সাইট । অ্যাপলের নিজস্ব ডকুমেন্টেশন ব্যাকগ্রাউন্ডের রঙ পরিবর্তনের জন্য সত্যই দরকারী:
ক্রিয়া বোতামটির পটভূমি রঙ।
ঘোষণা OBJECTIVE-C @ প্রপার্টি (ননোটমিক, অনুলিপি) ইউআইক্লোর * ব্যাকগ্রাউন্ড কালার আলোচনা আপনার বোতামের পটভূমির রঙ নির্দিষ্ট করতে এই সম্পত্তিটি ব্যবহার করুন। আপনি যদি এই সম্পত্তিটির জন্য কোনও মান নির্দিষ্ট না করেন তবে ইউআইকিট শৈলীর বৈশিষ্ট্যের মানের ভিত্তিতে একটি ডিফল্ট রঙ বরাদ্দ করে।
আইওএস 8.0 এবং তারপরে উপলভ্যতা উপলব্ধ।
আপনি যদি বোতামের ফন্টটি পরিবর্তন করতে চান তবে এটি কিছুটা জটিল। আমি এসও-তে অন্য একটি পোস্ট দেখেছি । লিঙ্কটির পাশাপাশি কোডটি সরবরাহ করার স্বার্থে, তারা সেখানে ব্যবহৃত কোডটি এখানে। আপনাকে বোতামটির চেহারা পরিবর্তন করতে হবে। আপনাকে টেবিলভিউসেলটিতে একটি নির্দিষ্ট রেফারেন্স তৈরি করতে হবে, অন্যথায় আপনি আপনার অ্যাপ্লিকেশন জুড়ে বোতামটির উপস্থিতি পরিবর্তন করতে চান (আমি তা চাইনি, তবে আপনি হয়ত জানেন না :))
উদ্দেশ্য গ:
+ (void)setupDeleteRowActionStyleForUserCell {
UIFont *font = [UIFont fontWithName:@"AvenirNext-Regular" size:19];
NSDictionary *attributes = @{NSFontAttributeName: font,
NSForegroundColorAttributeName: [UIColor whiteColor]};
NSAttributedString *attributedTitle = [[NSAttributedString alloc] initWithString: @"DELETE"
attributes: attributes];
/*
* We include UIView in the containment hierarchy because there is another button in UserCell that is a direct descendant of UserCell that we don't want this to affect.
*/
[[UIButton appearanceWhenContainedIn:[UIView class], [UserCell class], nil] setAttributedTitle: attributedTitle
forState: UIControlStateNormal];
}
সুইফট:
//create your attributes however you want to
let attributes = [NSFontAttributeName: UIFont.systemFontOfSize(UIFont.systemFontSize())] as Dictionary!
//Add more view controller types in the []
UIButton.appearanceWhenContainedInInstancesOfClasses([ViewController.self])
এটি সবচেয়ে সহজ এবং সর্বাধিক স্ট্রিমযুক্ত রেখাযুক্ত সংস্করণ আইএমএইচও। আশা করি এটা সাহায্য করবে.
আপডেট: এখানে সুইফট 3.0 সংস্করণ:
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
var shareAction:UITableViewRowAction = UITableViewRowAction(style: .default, title: "Share", handler: {(action, cellIndexpath) -> Void in
let shareMenu = UIAlertController(title: nil, message: "Share using", preferredStyle: .actionSheet)
let twitterAction = UIAlertAction(title: "Twitter", style: .default, handler: nil)
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
shareMenu.addAction(twitterAction)
shareMenu.addAction(cancelAction)
self.present(shareMenu,animated: true, completion: nil)
})
var rateAction:UITableViewRowAction = UITableViewRowAction(style: .default, title: "Rate" , handler: {(action, cellIndexpath) -> Void in
// 4
let rateMenu = UIAlertController(title: nil, message: "Rate this App", preferredStyle: .actionSheet)
let appRateAction = UIAlertAction(title: "Rate", style: .default, handler: nil)
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
rateMenu.addAction(appRateAction)
rateMenu.addAction(cancelAction)
self.present(rateMenu, animated: true, completion: nil)
})
// 5
return [shareAction,rateAction]
}