मेरे पास एक बटन वाला एक प्रोजेक्ट है जो उपयोगकर्ता को सूची दृश्य (UITableView
) और ग्रिड व्यू (UICollectionView
) के बीच स्विच करने की अनुमति देता है लेकिन मुझे नहीं पता कि यह कैसे करें।UITableView और UICollectionView को कैसे स्विच करें
उत्तर
मान लें कि आपके नियंत्रक एक UITableView
संपत्ति tableView
नाम और एक UICollectionView
संपत्ति collectionView
नामक करते हैं। आपके viewDidLoad
में आपको प्रारंभिक दृश्य जोड़ने की आवश्यकता है।
- (void)viewDidLoad
{
self.tableView.frame = self.view.bounds;
[self.view addSubview:self.tableView];
}
फिर अपने बटन कॉलबैक में
, विचारों बाहर स्वैप:
- (void)buttonTapped:(id)sender
{
UIView *fromView, *toView;
if (self.tableView.superview == self.view)
{
fromView = self.tableView;
toView = self.collectionView;
}
else
{
fromView = self.collectionView;
toView = self.tableView;
}
[fromView removeFromSuperview];
toView.frame = self.view.bounds;
[self.view addSubview:toView];
}
आप एक फैंसी एनीमेशन चाहते हैं, आप के बजाय +[UIView transitionFromView:toView:duration:options:completion:]
उपयोग कर सकते हैं:
- (void)buttonTapped:(id)sender
{
UIView *fromView, *toView;
if (self.tableView.superview == self.view)
{
fromView = self.tableView;
toView = self.collectionView;
}
else
{
fromView = self.collectionView;
toView = self.tableView;
}
toView.frame = self.view.bounds;
[UIView transitionFromView:fromView
toView:toView
duration:0.25
options:UIViewAnimationTransitionFlipFromRight
completion:nil];
}
की यह तालिका दृश्य है लगता है चलो
धन्यवाद! लेकिन मैं किस व्यू कंट्रोलर का उपयोग कर सकता हूं? TableViewController या संग्रह दृश्य नियंत्रक। मैं एक बाहरी वर्ग (ViewController नहीं) में TableViewDelegate और डेटास्रोत का उपयोग कैसे कर सकता हूं? –
बस एक सामान्य UIViewController का उपयोग करें, और गुणों के रूप में दोनों प्रकार के दृश्य जोड़ें। या, यदि आप दो विचारों के लिए तर्क को अलग रखना चाहते हैं, तो आप एक UITableViewController और UICollectionViewController बना सकते हैं और मुख्य नियंत्रक के गुणों के बजाय उनके विचारों का उपयोग कर सकते हैं। – Simon
यदि आपके विचार पहले से ही दृश्य पदानुक्रम का हिस्सा हैं (उदाहरण के लिए xib/storyboard के साथ जोड़कर) आपको 'UIViewAnimationOptionShowHideTransitionViews' को' + transitionFromView: ToView: अवधि: विकल्प: समापन: 'विधि में विकल्प पैरामीटर में से एक के रूप में पास करना होगा । – MrBr
इससे निपटने का एक और तरीका एक UICollectionView
है जिसमें आप इच्छित मोड के आधार पर UICollectionViewFlowLayout
कार्यान्वयन स्विच कर सकते हैं।
UITableView
से UICollectionView
में कनवर्ट करने के लिए, ऑनलाइन बहुत सारे ट्यूटोरियल हैं, उदाहरण के लिए this।
यह बहुत खराब अंग्रेजी नहीं है लेकिन वर्तमान में यह एक खराब सवाल है। क्या आप _exactly_ पर फंस गए हैं? आपने अभी तक क्या करने की कोशिश की है? –
मुझे खेद है @ लेकिन मैं एक नौसिखिया हूँ! –