ইউআইটিএবলভি বিভাগ বিভাগ শিরোনামের ডিফল্ট স্ক্রোলিং আচরণ পরিবর্তন করুন


147

আমার দুটি বিভাগ সহ একটি ইউআইটিএবলভিউ রয়েছে। এটি একটি সাধারণ টেবিল ভিউ। আমি এই শিরোনামগুলির জন্য কাস্টম দর্শন তৈরি করতে ভিউএফএইডারআইএনসেকশনটি ব্যবহার করছি। এ পর্যন্ত সব ঠিকই.

ডিফল্ট স্ক্রোলিং আচরণটি হ'ল কোনও বিভাগের মুখোমুখি হওয়ার পরে, বিভাগের শিরোনামটি ন্যাভ বারের নীচে অ্যাঙ্করড থাকে, পরবর্তী বিভাগটি স্ক্রোল না হওয়া অবধি।

আমার প্রশ্নটি হ'ল: আমি কি ডিফল্ট আচরণটি পরিবর্তন করতে পারি যাতে বিভাগের শিরোনামগুলি শীর্ষে অ্যাঙ্করড না থাকে, বরং, বিভাগের বাকি সারিগুলির সাথে এনএভি বারের নীচে স্ক্রোল করে?

আমি কি স্পষ্ট কিছু মিস করছি?

ধন্যবাদ।


1
এটি অবশ্যই এই সাইটের সেরা লিখিত প্রশ্নগুলির একটি হতে হবে! :) ধন্যবাদ।
ফ্যাটি

1
এখানে সঠিক ভাবে এই মর্মে অর্জনে চেক করুন stackoverflow.com/a/13735238/1880899
সুমিত Anantwar

উত্তর:


175

আমি এই সমস্যার সমাধান সমন্বয় হয় contentOffsetঅনুযায়ী contentInsetUITableViewControllerDelegate(প্রসারিত UIScrollViewDelegate) এই মত:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
       CGFloat sectionHeaderHeight = 40;
   if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
       scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
   } else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
       scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
   }
}

কেবল এখানে সমস্যা হ'ল শীর্ষে ফিরে স্ক্রোল করার সময় এটি কিছুটা বাউন্স হারাবে।


{দ্রষ্টব্য: "40" আপনার বিভাগ 0 শিরোনামের সঠিক উচ্চতা হওয়া উচিত। আপনি যদি আপনার বিভাগ 0 শিরোনামের উচ্চতার চেয়ে বড় যে কোনও নম্বর ব্যবহার করেন, আপনি দেখতে পাবেন যে আঙুলের অনুভূতি প্রভাবিত হয়েছে ("1000" এর মতো চেষ্টা করুন এবং আপনি দেখতে পাবেন যে বাউন্স আচরণটি শীর্ষে এক ধরণের অদ্ভুত is যদি নম্বরটি আপনার বিভাগ 0 শিরোনামের উচ্চতার সাথে মেলে তবে আঙুলের অনুভূতিটি নিখুঁত বা নিকট-নিখুঁত বলে মনে হচ্ছে}


1
উপরেরটির চেয়ে নিখুঁত সমাধান।
প্রথম

4
ধন্যবাদ! এটি একটি নিখুঁত সমাধান। বিভাগীয় পাদচরণের সমাধান কি আপনার কাছে রয়েছে?
তুয়ান এনগুইন

12
এই সমাধানটি ট্যাপ অন মেনুবারটি সঠিকভাবে পরিচালনা করে না, যা তালিকার শীর্ষে স্ক্রোল করার কথা।
রিড এলিস

বিভাগের পাদলেখ দেখার জন্য যদি আপনার একই আচরণের প্রয়োজন হয় তবে কেবল এই মতো শেষ লাইনটি পরিবর্তন করুন: স্ক্রোলভিউ.কন্টেন্টইনসেট = ইউআইএডেজইনসেটস মেক (0, 0, বিভাগ হিদারহাইট, 0)
অ্যালেক্স

এটি যথেষ্ট বলে মনে হচ্ছে: স্ক্রোলভিউ.কন্টেন্টইনসেট = ইউআইইডিজইনসেটমেক (স্ক্রোলভিউ.কন্টেন্টঅফসেট.ই> = 0? -স্ক্রোলভিউ.কন্টেন্টঅফসেট.ই: 0, 0, 0, 0);
ম্যাকমার্ক

85

আপনি শীর্ষে শূন্য সারি যুক্ত একটি বিভাগও যুক্ত করতে পারেন এবং পরবর্তী বিভাগের শিরোনাম হিসাবে কেবল পূর্ববর্তী বিভাগের পাদচরণ ব্যবহার করতে পারেন।


13
আমার ক্ষেত্রে যেখানে আমার 2 টিরও বেশি বিভাগ রয়েছে, পাদলেখ নীচে অ্যাঙ্কর করবে ..
জোসেফ লিন

3
এটি সৃজনশীল তবে আপনি যদি টেবিলটি লোড করতে কোনও এনএসফ্যাচডেরিয়াল্টস কন্ট্রোলার ব্যবহার করেন তবে আপনাকে সূচিপথটি সামঞ্জস্য করতে হবে।
এক্সজোনস

সেরা সমাধানের জন্য +1 - বাস্তবায়নে আমাকে 3 লাইনের মতো নিয়ে গেছে!
জন

উজ্জ্বল উজ্জ্বল উজ্জ্বল :-)
আইফোনিক

অ্যাঙ্গরগুলি কীভাবে ফুটারের জন্য এটি কাজ করবে? কিছু সাহায্য প্রশংসা করবে! ধন্যবাদ
দারওয়িন্দেডস

36

আমি যদি এটি করছিলাম তবে আমি এই সুযোগটি গ্রহণ করব যে সমতল শৈলীতে ইউআইটিবেবল ভিউগুলির স্টিকি স্টাডগুলি এবং গোষ্ঠীযুক্ত স্টাইলে না থাকে have আমি সম্ভবত একটি গ্রুপযুক্ত টেবিলের সমতুল্য কক্ষগুলির উপস্থিতি নকল করতে একটি কাস্টম টেবিল সেল ব্যবহার করার চেষ্টা করব।

আমি বাস্তবে এটি চেষ্টা করি নি যাতে এটি কার্যকর না হয় তবে আমি এটি করার পরামর্শ দিই।


সম্ভবত কাজ করবে, কিন্তু এটি চেষ্টা করা হয়েছে? @ VoidStern এর উত্তরটি পুরোপুরি কার্যকর হলে এটি অনেকটা কাজের মতো মনে হয় !!
বেন্টফোর্ড

আমার যখন দুটি বিভাগের বেশি থাকবে তখন শূন্যগতির উত্তর আমার পক্ষে কাজ করে না। কলিনের উত্তরটি সরল / আরও মার্জিত, ম্যানুয়ালি বিভাগের নম্বরটি স্থানান্তর এবং বিভাগ গণনা যুক্ত করার প্রয়োজন ছাড়াই।
জোসেফ লিন

টিপস: tableView.separatorColor = [UIColor clearColor];একটি সরল সারণী দর্শন নকল করতে ব্যবহার করুন ।
জোসেফ লিন

3
আমি এটি করার চেষ্টা করেছি, তবে যখন আমি গোষ্ঠীযুক্ত টেবিলের ঘরগুলি সরলখানের মতো দেখতে পারাতে পারি নি, অর্থাৎ ঘরের উভয় পাশের বাম এবং ডান দিকের মার্জিনটি সরিয়ে ফেলি। তুমি ইহা কিভাবে করলে?
অ্যাডাম কার্টার

1
ইউআইটিএবলভিউ স্টাইল অর্থাৎ গোষ্ঠীভুক্ত এবং সরল সম্পর্কে বিষয়গুলি পরিষ্কার করার জন্য অনেক ধন্যবাদ, যা টেবিলভিউয়ের বিভাগের শিরোনাম / পাদচরণ স্টিকি হবে কিনা তা স্থির করে। অনেক ধন্যবাদ @ কলিন ব্যারেট
ধাওয়াল এইচ। নেনা

28

আমি জানি এটি দেরিতে আসে তবে আমি এর সুনির্দিষ্ট সমাধানটি পেয়েছি!

আপনি যা করতে চান তা যদি আপনার 10 টি বিভাগ থাকে তবে ডেটাসোর্সকে 20 ফেরত দেওয়া দিন section বিভাগের শিরোনামের জন্য এমনকি সংখ্যার এবং বিভাগের সামগ্রীর জন্য বিজোড় সংখ্যাগুলি ব্যবহার করুন। এটার মতো কিছু

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    if (section%2 == 0) {
        return 0;
    }else {
        return 5;
    }
}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    if (section%2 == 0) {
        return [NSString stringWithFormat:@"%i", section+1];
    }else {
        return nil;
    }
}

Voila! : ডি


ভালো বুদ্ধি. তবে আপনার কাছে বিভাগ সূচী শিরোনাম থাকলে, আমি সন্দেহ করি এটি তাদের জবাবদিহি করবে।
রুমেল

কেন? আপনি বিভাগ শিরোনাম সঙ্গে একই করতে পারেন। বিজোড় সংখ্যাগুলির জন্য শূণ্য এবং এমনকি সংখ্যার জন্য একটি শিরোনাম মনে রাখবেন।
লোকোমাইক 12'12

1
হ্যাঁ - এই পদ্ধতিটি দুর্দান্ত কাজ করে। এটি প্রচুর বুককিপিং ছিল (সম্ভবত বিভাগের শিরোনামগুলি পেতে আমার কীভাবে করতে হবে) তবে এটি কার্যকর হয়েছিল। কৌতুকটি হ'ল নম্বরঅফ্রাউসআইনসেকশন এবং সেলফরআউএন্টেক্সপথ যদি (বিভাগ% 2! = 0 && বিভাগ! = 0) ব্যবহার করে তবে শিরোনামফোর্ডহাইডারইনসেকশন এবং অন্যান্য বিভাগ সূচক ফাংশনগুলি যদি ব্যবহার করে (বিভাগ% 2 == 0)
রুমেল

প্রবর্তকের উত্তর হিসাবে এটি চয়ন করা উচিত। বিভাগের শিরোনামগুলি স্বয়ংক্রিয়ভাবে অ্যাঙ্কর করার জন্য সাবক্লাস ইউটিউবভিউয়ের কোনও উপায় থাকলে এটি দুর্দান্ত।
Roosel

এটি আমার পক্ষে সবচেয়ে ভাল কাজ করেছে। আমি প্রথমে @ কলিনের সমাধানটি চেষ্টা করেছি, তবে UITableViewআমি যে ভারী কাস্টমাইজটি ব্যবহার করছি তার সাথে এটি কার্যকরভাবে কাজ করে না।
কুবি

15

হ্যাকিহীন পদ্ধতিতে এই সমস্যাটি সমাধান করার জন্য বেশ কয়েকটি জিনিস করা দরকার:

  1. সারণী দর্শন শৈলীতে সেট করুন UITableViewStyleGrouped
  2. টেবিল ভিউ সেট backgroundColorকরতে[UIColor clearColor]
  3. backgroundViewপ্রতিটি টেবিল ভিউ সেলটিতে একটি খালি ভিউতে সেট করুনbackgroundColor [UIColor clearColor]
  4. প্রয়োজনে সারণী দর্শনটি rowHeightযথাযথভাবে সেট করুন বা tableView:heightForRowAtIndexPath:স্বতন্ত্র সারিতে আলাদা উচ্চতা থাকলে ওভাররাইড করুন ।

(+1) @ নীল, আমি আপনার উত্তরটি চেষ্টা করেছি তবে দুর্ভাগ্যক্রমে, UITableViewStyleGroupedটেবিল কোষগুলিতে অতিরিক্ত মার্জিন রয়েছে যা শিরোনামের সাথে তাদের প্রান্তিককরণ পরিবর্তন করে। আপনি যখন কোনও মাল্টি-কলামের টেবিলটি চিত্রিত করতে চান এবং কলাম শিরোনামগুলি দেখানোর জন্য শিরোনামটি ব্যবহার করতে চান (এবং তারপরে স্বতন্ত্র টেবিলের এন্ট্রিগুলি এই শিরোনামগুলির সাথে একত্রিত করতে চান) এটি একটি সমস্যা।
ব্রেইনজাম

15

মূলত এখানে পোস্ট করা হয়েছে, আইবি ব্যবহার করে একটি দ্রুত সমাধান। একই প্রোগ্রামালিকভাবে করা যেতে পারে যদিও বেশ সহজ।

এটি অর্জনের সম্ভবত একটি সহজ উপায় (আইবি ব্যবহার করে):

আপনার টেবিলভিউকে এটির শিরোনাম দর্শন করতে একটি ইউআইভিউ টানুন।

  1. সেই শিরোনাম দর্শন উচ্চতা 100px এ সেট করুন
  2. টেবিলভিউ সামগ্রীটি ইনসেট (শীর্ষ) -100 এ সেট করুন
  3. বিভাগের শিরোনামগুলি এখন কোনও নিয়মিত কক্ষের মতোই স্ক্রোল করবে।

কিছু লোক মন্তব্য করে বলেছিলেন যে এই সমাধানটি প্রথম শিরোনামটি আড়াল করে, তবে আমি এ জাতীয় কোনও সমস্যা লক্ষ্য করি নি। এটি আমার পক্ষে নিখুঁতভাবে কাজ করেছিল এবং আমি এ পর্যন্ত দেখলাম সবচেয়ে সহজ সমাধান।


নোট করুন যে ক্লিয়ারকলারের ব্যাকগ্রাউন্ড রঙ ব্যবহার করার জন্য আপনার সম্ভবত ভিউটি সেট করা উচিত, অন্যথায় যদি আপনি উপরে থেকে স্ক্রোল করেন তবে আপনি বাউন্সে সাদা দেখতে পাচ্ছেন।
ডক

3
এটি আমার প্রথম
শিরোনামটি

লীনা, আপনি iOS এর কোন সংস্করণে চলেছেন? ভিআইটি কি কোনও ইউআইটিএবলভিউ কনট্রোলার, বা কোনও ইউআইটিএলভিউ সহ কোনও ইউআইভিউ রয়েছে? আমি নিশ্চিত নই কেন কিছু লোকের জন্য এই সমাধানটি প্রথম শিরোনামটি লুকায় তাই আমি কোনও ত্রুটি খুঁজে পাওয়ার চেষ্টা করছি।
ডক

এই সমাধান নিখুঁত। আমি অসীম শীর্ষ এবং নীচের ঘরটির পটভূমি চেহারা খুঁজছি - এটি সম্পূর্ণরূপে এটি সম্পাদন করে। নিস!
টেলর হলিডে

এই সমাধানটি দুর্দান্ত। এই থ্রেডের অন্যান্য উত্তরগুলির তুলনায় সহজতর। আমার মতে, এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
জন রজার্স

15

আমি এখন পর্যন্ত এখানে বর্ণিত সমাধানগুলি নিয়ে খুশি ছিলাম না, তাই আমি তাদের একত্রিত করার চেষ্টা করেছি। ফলাফলটি অওল্ড এবং @ এসকোফ্রি দ্বারা অনুপ্রাণিত নিম্নলিখিত কোড is এটি আমার পক্ষে কাজ করে কারণ আমার কাছে কোনও টেবিল ভিউ শিরোনাম নেই। আপনার যদি ইতিমধ্যে একটি টেবিল ভিউ শিরোনাম থাকে তবে আপনাকে উচ্চতা সামঞ্জস্য করতে হতে পারে।

// Set the edge inset
self.tableView.contentInset = UIEdgeInsetsMake(-23.0f, 0, 0, 0);

// Add a transparent UIView with the height of the section header (ARC enabled)
[self.tableView setTableHeaderView:[[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 23.0f)]];

এটি আমার সাদামাটা সমাধান ছিল।
জোড়ায়ার

এটি iOS9.2 এ আমার জন্য কাজ করেছিল, তাই পুরানো উত্তর সত্ত্বেও এটি বৈধ। এবং এটি প্রথম বিভাগের শিরোনামটি আড়াল করে নি। কাজ করে, এবং নিখুঁতভাবে কাজ করে।
idStar

পারফেক্ট। যদি আপনার টেবিলভিউতে ইতিমধ্যে একটি শিরোনাম রয়েছে তবে কেবল অফসেটের দ্বারা এর উচ্চতা বাড়িয়ে নিন তবে সামগ্রীটিকে মূল অবস্থানে স্থানান্তরিত করতে শীর্ষচিকিত্সার শীর্ষ সীমাবদ্ধতা বাড়িয়ে দিন
জেসন

14

টেবিলভিউ স্টাইলটি পরিবর্তন করুন:

self.tableview = [[UITableView alloc] initwithFrame:frame style:UITableViewStyleGrouped];

ইউআইটিএবল ভিউ স্টাইল ডকুমেন্টেশন :

UITableViewStylePlain- একটি সরল সারণী দর্শন। যে কোনও বিভাগের শিরোনাম বা পাদচরণগুলি ইনলাইন বিভাজক হিসাবে প্রদর্শিত হবে এবং টেবিলের দৃশ্যটি স্ক্রোল করার সময় ভাসমান।

UITableViewStyleGrouped- একটি সারণী দর্শন যার বিভাগগুলি সারিগুলির পৃথক গোষ্ঠী উপস্থাপন করে। বিভাগের শিরোনাম এবং পাদচরণগুলি ভাসমান নয়।


দুর্দান্ত উত্তর, আমার জন্য কাজ। আশেপাশে কোনও কাজের দরকার নেই
শামস আহমেদ

9

গোষ্ঠীযুক্ত টেবিল ভিউ স্টাইল নির্বাচন করুন

স্টোরিবোর্ডে আপনার টেবিলভিউয়ের অ্যাট্রিবিউট ইন্সপেক্টর থেকে গোষ্ঠীযুক্ত টেবিল দেখুন শৈলী নির্বাচন করুন।


5

বিভাগ দৃশ্যে শিরোনামের একই উচ্চতার সাথে স্বচ্ছ দৃষ্টিভঙ্গি সহ সারণীর শিরোনামদর্শনটি সেট করুন। এছাড়াও হাই-এ-এ ফ্রেমের সাথে টেবিলভিউটি শুরু করুন i

self.tableview = [[UITableView alloc] initWithFrame:CGRectMake(0, - height, 300, 400)];

UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, width, height)] autorelease];
[self.tableView setTableHeaderView:headerView];

4

আমি একটি বিকল্প সমাধান পেয়েছি, প্রতিটি বিভাগের প্রথম কক্ষটি পরিবর্তে একটি আসল শিরোলেখ বিভাগ ব্যবহার করুন, এই সমাধানটি এত পরিষ্কার দেখাচ্ছে না, তবে এটি খুব সূক্ষ্মভাবে কাজ করে, আপনি আপনার শিরোনাম বিভাগের জন্য একটি সংজ্ঞায়িত প্রোটোটাইপ সেল ব্যবহার করতে পারেন, এবং পদ্ধতি সেলফোর্ডআটইন্ডেক্সপথটিতে সূচকপথের জন্য জিজ্ঞাসা করুন row == 0, যদি সত্য হয় তবে শিরোনাম বিভাগের প্রোটোটাইপ সেলটি ব্যবহার করুন, অন্যথায় আপনার ডিফল্ট প্রোটোটাইপ সেলটি ব্যবহার করুন।


আপনি যদি এখনও indexPath.row& এর সাথে কাজ indexPath.sectionকরতে চান তবে নিশ্চিত করুন যে আপনি এর উচ্চতা ফিরে 0.0fপেয়েছেন - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)sectionযাতে আপনার শিরোনাম অদৃশ্য।
স্যুপ

4

আপনার টেবিল ভিউ স্টাইলটি পরিবর্তন করুন:

self.tableview = [[UITableView alloc] initwithFrame:frame style:UITableViewStyleGrouped];

ইউআইটিবেল ভিউয়ের জন্য অ্যাপল ডকুমেন্টেশন অনুসারে:

UITableViewStylePlain- একটি সরল সারণী দর্শন। যে কোনও বিভাগের শিরোনাম বা পাদচরণগুলি ইনলাইন বিভাজক হিসাবে প্রদর্শিত হবে এবং টেবিলের দৃশ্যটি স্ক্রোল করার সময় ভাসমান।

UITableViewStyleGrouped- একটি সারণী দর্শন যার বিভাগগুলি সারিগুলির পৃথক গোষ্ঠী উপস্থাপন করে। বিভাগের শিরোনাম এবং পাদচরণগুলি ভাসমান নয়। আশা করি এই ছোট্ট পরিবর্তন আপনাকে সাহায্য করবে ..


2

গোষ্ঠীযুক্ত শৈলীটি মূলত আইওএস in (ফ্ল্যাটনেস এবং পটভূমির ক্ষেত্রে) প্লেইন স্টাইলের মতো দেখতে দেখতে আমাদের কাছে সবচেয়ে ভাল এবং সহজতম (অর্থাত্ হ্যাকি) ফিক্সটি ছিল কেবল টেবিলের দৃশ্যের স্টাইলকে দলবদ্ধ করে তোলা। কন্টেন্টইনসেটস দিয়ে জ্যাক করা সর্বদা একটি সমস্যা ছিল যখন আমরা শীর্ষে একটি স্ক্রল-দূরে নেভ বারকে সংহত করি। গোষ্ঠীযুক্ত সারণী দর্শন শৈলীর সাথে এটি দেখতে একরকম দেখা যায় (আমাদের কোষগুলির সাথে) এবং বিভাগের শিরোনামগুলি স্থির থাকে। কোনও স্ক্রলিং অদ্ভুততা নেই।


এটি সর্বোত্তম সমাধান বিশেষত যদি ঘরগুলি কাস্টম হয় তবে মনে হয় সেকশনটি শিরোনামটির "হোল্ড" থামিয়ে দেওয়া হবে যখন শীর্ষস্থানীয় স্ক্রোলটি আঘাত করবে।
18:48

1

আপনার টেবিলভিউতে একটি নেতিবাচক ইনসেট বরাদ্দ করুন। আপনার যদি 22px উচ্চ বিভাগের শিরোনাম রয়েছে এবং ড্যাটাটি পুনরায় লোড করার ঠিক পরে আপনি এগুলি স্টিকি হতে চান না:

self.tableView.contentInset = UIEdgeInsetsMake(-22, 0, 0, 0); 
self.tableView.contentSize = CGSizeMake(self.tableView.contentSize.width, self.tableView.contentSize.height+22); 

আমার জন্য একটি কবজ ভালো কাজ করে। বিভাগের পাদলেখগুলির জন্যও কাজ করে, কেবল নীচে নেতিবাচক ইনসেটটি বরাদ্দ করুন।


এটি কেবল প্রথম শিরোনামের বাইরে চলে গেছে ??
cannyboy

আমার জন্য নিখুঁতভাবে কাজ করেছেন !! ধন্যবাদ
ড্যানিয়েল

0

আমি টেবিলটি একটি স্ক্রোল ভিউতে যুক্ত করব এবং এটি ভালভাবে কাজ করছে বলে মনে হচ্ছে।



0

@ লোকোমাইকের উত্তরটি আমার টেবিলভিউয়ের সাথে সবচেয়ে ভাল ফিট করে, তবে পাদলেখগুলি ব্যবহার করার সময় এটি ভেঙে যায়। সুতরাং, শিরোনাম এবং পাদচরণগুলি ব্যবহার করার সময় এটি সঠিক সমাধান:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return (self.sections.count + 1) * 3;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section % 3 != 1) {
        return 0;
    }
    section = section / 3;
    ...
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if (section % 3 != 0) {
        return nil;
    }
    section = section / 3;
    ...
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section % 3 != 0) {
        return 0;
    }
    section = section / 3;
    ...
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
    if (section % 3 != 2) {
        return 0;
    }
    section = section / 3;
    ...
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if (section % 3 != 0) {
        return nil;
    }
    section = section / 3;
    ...
}

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    if (section % 3 != 2) {
        return nil;
    }
    section = section / 3;
    ...
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    int section = indexPath.section;
    section = section / 3;
    ...
}

0

@ অলফ উত্তরের সুইফ্ট সংস্করণ, যা দুর্দান্ত কাজ করে!

func scrollViewDidScroll(scrollView: UIScrollView) {
    let sectionHeight: CGFloat = 80
    if scrollView.contentOffset.y <= sectionHeight {
        scrollView.contentInset = UIEdgeInsetsMake( -scrollView.contentOffset.y, 0, 0, 0)
    }else if scrollView.contentOffset.y >= sectionHeight {
        scrollView.contentInset = UIEdgeInsetsMake(-sectionHeight, 0, 0, 0)
    }
}

-2

আমি শিখেছি যে সারণী হিডারভিউয়ের সম্পত্তিটি সারণী সেট করে যা এটি করে:

 tableView.tableHeaderView = customView;

এবং এটাই.

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.