আমি সচেতন যে এই প্রশ্নটি আগে জিজ্ঞাসা করা হয়েছিল তবে উত্তরগুলি বিরোধী এবং আমি বিভ্রান্ত, তাই দয়া করে আমাকে শিখাবেন না।
আমি UIView
আমার অ্যাপ্লিকেশন জুড়ে একটি পুনরায় ব্যবহারযোগ্য সাবক্লাস চাই। আমি একটি নিব ফাইল ব্যবহার করে ইন্টারফেসটি বর্ণনা করতে চাই।
এখন আসুন এটির ক্রিয়াকলাপ সূচক সহ এটি একটি লোডিং ইন্ডিকেটর ভিউ বলে। আমি কোনও ইভেন্টে এই ভিউটি তাত্ক্ষণিকভাবে দেখানোর জন্য এবং কোনও দৃশ্যের নিয়ামকের দৃশ্যে প্রাণবন্ত করতে চাই। আমি ভিউয়ের ইন্টারফেসটিকে কোনও সমস্যা হিসাবে প্রোগ্রামিতভাবে বর্ণনা করতে পারি না, উপাদানগুলিকে প্রোগ্রামগতভাবে তৈরি করে এবং একটি ডিআর পদ্ধতির অভ্যন্তরে তাদের ফ্রেম সেট করে আছি
যদিও আমি নিব ব্যবহার করে এটি কীভাবে করতে পারি? ফ্রেম সেট না করে ইন্টারফেস বিল্ডারে দেওয়া আকার বজায় রাখা।
আমি এটি এটির মতো করে পরিচালনা করতে পেরেছি তবে আমি নিশ্চিত যে এটি ভুল ((এটিতে কোনও পিকারের সাথে এটি কেবল একটি দৃশ্য):
- (id)initWithDataSource:(NSDictionary *)dataSource {
self = [super init];
if (self){
self = [[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@", [self class]] owner:self options:nil] objectAtIndex:0];
self.pickerViewData = dataSource;
[self configurePickerView];
}
return self;
}
তবে আমি নিজে থেকে ওভাররাইট করছি, এবং যখন আমি তা ইনস্ট্যান্ট করব:
FSASelectView *selectView = [[FSASelectView alloc] initWithDataSource:selectViewDictionary];
selectView.delegate = self;
selectView.frame = CGRectMake(0, self.view.bottom + 50, [FSASelectView width], [FSASelectView height]);
আইবি থেকে তুলে নেওয়ার পরিবর্তে আমাকে ম্যানুয়ালি সেট করতে হবে।
সম্পাদনা: আমি একটি দর্শন নিয়ামকটিতে এই কাস্টম দর্শনটি তৈরি করতে চাই এবং দেখার উপাদানগুলির নিয়ন্ত্রণ করতে অ্যাক্সেস পেতে চাই। আমি নতুন ভিউ কন্ট্রোলার চাই না।
ধন্যবাদ
সম্পাদনা: আমি জানি না এটি সর্বোত্তম অনুশীলন কিনা, আমি নিশ্চিত যে এটি তা নয়, তবে আমি এটি এটি করেছিলাম:
FSASelectView *selectView = [[[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@",[FSASelectView class]] owner:self options:nil] objectAtIndex:0];
selectView.delegate = self;
[selectView configurePickerViewWithData:ds];
selectView.frame = CGRectMake(0, self.view.bottom + 50, selectView.width, selectView.height);
selectView.alpha = 0.9;
[self.view addSubview:selectView];
[UIView animateWithDuration: 0.25 delay: 0 options:UIViewAnimationOptionAllowUserInteraction |UIViewAnimationOptionCurveEaseInOut animations:^{
selectView.frame = CGRectMake(0, self.view.bottom - selectView.height, selectView.width, selectView.height);
selectView.alpha = 1;
} completion:^(BOOL finished) {
}];
সঠিক অনুশীলন এখনও চেয়েছিল
ভিউ কন্ট্রোলার এবং এনআইবি নাম সহ আরম্ভ ব্যবহার করে এটি করা উচিত ছিল? কোডটিতে কিছু ইউআইভিউ সূচনা পদ্ধতিতে আমার কি নিব সেট করা উচিত ছিল? বা আমি কি ঠিক আছে?
initWithDataSource
? যাইহোক আপনি মালিককে 'নিল' হিসাবে দিলেও এটি কাজ করবে।