নির্দিষ্ট বিভাগ হেডারের জন্য পটভূমির রঙ কিভাবে সেট করবেন?

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

উদাহরণ:

for section Black I need to set black background

for section Red I need to set red background

এবং তাই ...

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *tempHeaderView=[[UIView alloc]initWithFrame:CGRectMake(0,0,320,44)];
     tempHeaderView.backgroundColor=[UIColor blackColor];

     [tempHeaderView addSubView: tempHeaderLabel];
     return tempHeaderView;
}
0
আপনি যদি ARC (স্বয়ংক্রিয় রেফারেন্স কাউন্টিং) ব্যবহার না করেন, তবে আপনার কোডটি হ্রাস tempHeaderView। যে ক্ষেত্রে একটি ফিক্স জন্য আমার উত্তর চেক আউট।
যোগ লেখক Nicolas Miari, উৎস
এআরসি ব্যবহার করার জন্য +1
যোগ লেখক Nicolas Miari, উৎস
আমি এআরসি ব্যবহার করি ... ধন্যবাদ!
যোগ লেখক Pavel Kaljunen, উৎস

2 উত্তর

আপনার ক্লাসের একটি ইনস্ট্যান্স ভেরিয়েবল (ভিউ কন্ট্রোলার যা প্রতিনিধি/ডাটা উত্স হিসাবে কাজ করে) হিসাবে একটি NISrray অবজেক্টের UIColor অবজেক্ট রাখুন, আপনি এটি section কল করুন কোড>। আপনি এই অ্যারের রং আপনার plist মধ্যে মান থেকে আরম্ভ করতে পারেন, অথবা হার্ড-কোড রং।

তারপর, এই কোড ব্যবহার করুন:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *tempHeaderView=[[UIView alloc]initWithFrame:CGRectMake(0,0,320,44)];


   //This changed:
    tempHeaderView.backgroundColor = [sectionColors objectAtIndex:section];

    [tempHeaderView addSubView: tempHeaderLabel];

    return tempHeaderView;
   //Use 'return [tempHeaderView autorelease];' in a non-ARC environment
}

এইভাবে আপনি অ্যারে শুরু করতে পারেন:

// Assuming your table has three sections (indices 0 through 2)

UIColor* colorForSection0 = [UIColor colorwithRed:redValue0 green:greenValue0 blue:blueValue0 alpha:1.0];
// redValue0, etc. are floats between 0.0 and 1.0 that you can read from a .plist
// Alternatively, store them as integers between 0 and 255, and divide them by 255.0 
// and store on CGFloat variables before creating color.

// ...Do the same for the other colors...

// Now that you have the colors, create array and store in ivar 'sectionColors'
sectionColors = [[NSArray alloc] initWithObjects: 
    ColorforSection0, ColorForSection1, colorForSection2, nil];

(উপরের কোডটি টেবিলের ভিউ ডাটা উৎসের সূচনাকারীর ভিতরে যেতে হবে)

3
যোগ
অবশ্যই ... কিন্তু আপনি প্লাস্টার থেকে R, G, B মানগুলি পড়তে পারেন এবং সেই অনুযায়ী রং আরম্ভ করতে পারেন। কিন্তু ধারণা একই: তিনি UIColor একটি অ্যারের প্রয়োজন এবং সূচক 'বিভাগ' রঙ নির্বাচন করতে আমি কিভাবে অ্যারের তৈরি অনুমিত হয় হত্তয়া বিস্তারিত না।
যোগ লেখক Nicolas Miari, উৎস
আমি শুধু উত্তরটি সম্পাদন করেছি তা পরিষ্কার করার জন্য যে আপনি সরাসরি .plist থেকে UIColor পড়তে পারেন না।
যোগ লেখক Nicolas Miari, উৎস
আমি আপনাকে একটি উদাহরণ দিতে হবে এবং আপনি আমাকে একটি টিক দেবে;)
যোগ লেখক Nicolas Miari, উৎস
আমি একটি ইন্টারফেসব্লিউডার বিশেষজ্ঞ নই, কিন্তু সম্ভবত কোনও এনআইবি কোথাও রঙের একটি অ্যারে সংরক্ষণ করার একটি উপায় আছে?
যোগ লেখক Nicolas Miari, উৎস
আমি মনে করি এটা আমার প্রয়োজন। ধন্যবাদ!
যোগ লেখক Pavel Kaljunen, উৎস
UIColor একটি plist মধ্যে সরাসরি storable নয়, কিন্তু এই ধারণা সহজে ব্যবহার করতে পারে যা রঙ ব্যবহার করতে প্রতিনিধিত্ব করার জন্য plist মধ্যে স্ট্রিং ব্যবহার।
যোগ লেখক Chris Trahey, উৎস
MVC বিশুদ্ধতা নোট; এটি সুপারিশ করা হয় যে প্লাস্টারের কোনটি কেবল মডেল হতে পারে (যেমন একটি বিভাগ 'সক্রিয়' অবস্থা), এবং না শৈলী (যেমন, কোনও অক্ষম অংশটি কোন রঙটি হওয়া উচিত)। তাই এই ধরনের একটি সমাধান UIColors অ্যারের সংকোচন জন্য দায়ী হচ্ছে দৃশ্য জড়িত উচিত। পেটেন্টিক, সম্ভবত, কিন্তু আমরা একটি কারণে এই নিদর্শন আছে যাতে এটি উল্লেখযোগ্য মূল্য
যোগ লেখক Chris Trahey, উৎস

আপনাকে পাস-ইন বিভাগটি ব্যবহার করতে হবে এবং এটি আপনার প্লেস্ট ফাইলের একটি বিভাগে সংযুক্ত করতে হবে। আপনি সম্ভবত "বিভাগ" এর একটি অভিধান লোড করতে পারবেন যেমনটি প্লাস্টার (সম্ভবত এটির অবস্থানের উপর ভিত্তি করে লোড হয় সেটি বিভাগের মতো একই) এবং তারপর valueForKey ব্যবহার করুন: @ "সক্রিয়" বা যদি() চেক, এবং অনুযায়ী আপনার রাষ্ট্র সেট।

2
যোগ