ইউআইটিএবলভিউ ব্যাকগ্রাউন্ডের রঙ সবসময় আইপ্যাডে ধূসর


128

আমি যখন আমার জন্য সেট backgroundColorকরি UITableViewএটি আইফোনে (ডিভাইস এবং সিমুলেটর) ঠিকঠাক কাজ করে তবে আইপ্যাড সিমুলেটারে নয়। পরিবর্তে আমি আমি অন্তর্গত সেট কোনো রঙ জন্য একটি হালকা ধূসর পটভূমি পেতে groupTableViewBackgroundColor

ধাপ পুনর্গঠন কর:

  1. একটি নতুন নেভিগেশন-ভিত্তিক প্রকল্প তৈরি করুন।
  2. রুটভিউকন্ট্রোলআরসিবিব খুলুন এবং সারণী দর্শন শৈলীটি "গোষ্ঠীযুক্ত" এ সেট করুন।
  3. এই প্রতিক্রিয়াটিকে রুটভিউ নিয়ন্ত্রণকারীকে যুক্ত করুন:

    - (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blackColor];
    }
  4. সিমুলেটর এসডিকে ৩.২ নির্বাচন করুন, বিল্ড এবং রান করুন।
  5. আপনি একটি কালো পটভূমি (ডিভাইস এবং সিমুলেটর) পাবেন।
  6. প্রকল্প ট্রিটিতে আপনার লক্ষ্য নির্বাচন করুন।
  7. প্রকল্পে ক্লিক করুন: আইপ্যাডের জন্য বর্তমান টার্গেট আপগ্রেড করুন।
  8. বিল্ড এবং রান করুন।
  9. আপনি একটি হালকা ধূসর ব্যাকগ্রাউন্ড পাবেন।
  10. সারণীতে প্রদর্শন শৈলীতে ফিরে যান এবং আপনি একটি কালো পটভূমি পাবেন।

আপনার সাহায্যের জন্য ধন্যবাদ!


2
আহ, এখন আইফোন এবং আইপ্যাড আবার এখানে iOS6 :
গার্ড

3
কদাচিৎ-ব্যবহৃত শব্দ "পুনরুত্পাদন করার পদক্ষেপ" ব্যবহারের জন্য ব্র্যাভো! :-p
কনস্টান্টিনো জারোহাস

উত্তর:


245

এর মধ্যে একটি ব্যবহার করে দেখুন।

[myTableView setBackgroundView:nil];
[myTableView setBackgroundView:[[[UIView alloc] init] autorelease]];

3
পার্শ্ব প্রতিক্রিয়া আছে কিনা তা আমি জানি না তবে এটি কার্যকর! ধন্যবাদ! স্ব। টেবিলভিউ.ব্যাকগ্রাউন্ডভিউ = শূন্য;
rjobidon

30
খুব গুরুত্বপূর্ণ গুরুত্বপূর্ণ: এটি কেবল এসডিকে 3.2 দিয়ে কাজ করে। পিছনে সামঞ্জস্যের জন্য 3.1.3। এবং এর আগে আপনাকে অবশ্যই টেবিল ভিউটি ব্যাকগ্রাউন্ডভিউয়ের সম্পত্তিতে সাড়া দেয় কিনা তা পরীক্ষা করে দেখতে হবে: যদি ([স্ব। টেবিলভিউ প্রতিক্রিয়াশীলতা নির্বাচনকারী: @ নির্বাচক (ব্যাকগ্রাউন্ডভিউ)]) স্ব.ট্যাবলভিউ.ব্যাকগ্রাউন্ডভিউ = শূন্য; অন্যথায় আপনার অ্যাপটি ক্রাশ হয়ে যাবে এবং হঠাৎ করে প্রস্থান করবে, আপনি আমাকে বিশ্বাস করতে পারেন!
rjobidon

1
হ্যাঁ, আমি উপরের সমাধানটি চেষ্টা করেছিলাম এবং এটি আমার পক্ষে কাজ করে। এই সমস্যাটি আসলে কী তা আমাকে বলতে পারেন। আমরা যখন অ্যাপটি চালাচ্ছি তখন কেন এটি গ্রেভড হয়?
নবীন

দয়া করে কেউ আমাদের বলবেন যে এই সমস্যাটি সমাধান করার জন্য এটি কেন প্রয়োজন?
মাস্ক 8

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

30

এই সমাধানের জন্য অনেক ধন্যবাদ। আমি এটি একটি ইউআইভিউ কনট্রোলারের আইবিউউটলেট সহ একটি ইউআইটিএবলভিউ প্রোপার্টিটিতে প্রয়োগ করেছি এবং এটি ভালো কাজ করে:

[panelTable setBackgroundView:nil];
[panelTable setBackgroundView:[[[UIView alloc] init] autorelease]];
[panelTable setBackgroundColor:UIColor.clearColor]; // Make the table view transparent

মাঝারি রেখার জন্য কোনও প্রয়োজন নেই [প্যানেল টেবিল সেটব্যাকগ্রাউন্ডভিউ: [[[ইউআইভিউ বরাদ্দ] ডিআইআই] অটোরিলিজ]]];
নিখিল

4
ফ্রিজিং ফায়ার: আসলে আছে। এটি ছাড়া, আপনি টেবিল ঘরের সীমানায় অদ্ভুত অঙ্কন শিল্পকর্মগুলি পান।
হিলটন ক্যাম্পবেল

6

আইপ্যাডে backgroundViewসম্পত্তিটি গোষ্ঠীযুক্ত টেবিলগুলির জন্য ধূসর পটভূমির রঙ তৈরি করতে ব্যবহৃত হয়েছে বলে মনে হয়। সুতরাং আইপ্যাডে গোষ্ঠীযুক্ত টেবিলগুলির জন্য পটভূমির রঙ পরিবর্তনের জন্য nilকোনও ব্যক্তির backgroundViewসম্পত্তি খুঁজে বের করা উচিত এবং তারপরে backgroundColorপছন্দসই টেবিলের ভিউ সেট করা উচিত ।

- (void)viewDidLoad
{
    [super viewDidLoad];

    // If you need to support iOS < 3.2, check for the availability of the
    // backgroundView property.
    if ([self.tableView respondsToSelector:@selector(setBackgroundView:)]) {
        self.tableView.backgroundView = nil;
    }
    self.tableView.backgroundColor = [UIColor whiteColor];
}

হ্যাঁ, পূর্ববর্তী আইওএস সমর্থন করতে এই চেকটি যুক্ত করা উচিত।
করিম

2

আমি মনে করি যে এটি Xcode 6.1 এবং iOS 8.1 হিসাবে বিশেষত আইপ্যাডের জন্য (যদি আপনি পাশাপাশি সেল ব্যাকগ্রাউন্ড সেট করতে চান) মনে হয় যে আপনার অবশ্যই টেবিলের পটভূমি এবং সেল ব্যাকগ্রাউন্ড সেট করতে হবে।

উদাহরণস্বরূপ, একটি আইফোন স্টোরিবোর্ডে আপনি রঙ সাফ করার জন্য একটি সেল সেট করতে পারেন, তারপরে ব্যাকগ্রাউন্ড ইমেজ সহ স্বচ্ছ টেবিলের জন্য প্রোগ্রামযুক্তভাবে সারণীর পটভূমি চিত্র সেট করুন। তবে আপনি যদি আইপ্যাডে এই একই কনফিগারেশনটি দেখতে পান তবে ঘরগুলি পরিষ্কার হবে না। আইপ্যাডের জন্য প্রোগ্রামালিকভাবে সাফ করতে কক্ষগুলি সেট করা দরকার।


এক্সকোড 6.4 সহ আইওএস 9.2 এ চলমান অ্যাপসটির জন্য আমি এই সমস্যাটি দেখছি। আমি আমার (স্ট্যাটিক) টেবিল ভিউ সেলগুলির ব্যাকগ্রাউন্ডের রঙগুলি ইন্টারফেস বিল্ডারে সাফ করার জন্য সেট করেছিলাম এবং তারা আইফোনটিতে স্পষ্ট দেখা গিয়েছিল, তবে আইপ্যাডে তারা সাদা ছিল যতক্ষণ না আমি ঘরের ব্যাকগ্রাউন্ডের রঙগুলি আমার ভিউ কন্ট্রোলারের -viewDidLoad:পদ্ধতিতে পরিষ্কার করার জন্য সেট করি ।
গ্রেগ

1

টেবিলের জন্য ব্যাকগ্রাউন্ড কালার এবং ভিউ সেট করার চেষ্টা করেছেন, ভাগ্য নেই (এক্সকোড 5 আইওএস 7.1 আইপ্যাড সিমুলেটর), আইফোনের জন্য ঠিক আছে, তবে আইপ্যাডে হালকা ধূসর ব্যাকগ্রাউন্ড রঙ ...

সেলটির জন্য ব্যাকগ্রাউন্ড কালারের সাথে কাজ করা এটি আমার জন্য আইওএস 7.1 4/2014 এ স্থির করেছে

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

        static NSString *CellIdentifier = @"ViewSomeTriggerCell";

        // get a cell or a recycled cell
        sictVCViewSomeTriggerCell *cellTrigger = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

        // put a picture and a word in the cell (positions set in .xib)
        NSString * tname = [self.fetchedTriggersArray objectAtIndex:indexPath.row];
        cellTrigger.imageTrigger.image = [UIImage imageNamed:@"icon_appicon.png"];
        cellTrigger.labelName.text = tname;

        // set background color, defeats iPad wierdness
        // http://stackoverflow.com/questions/2688007/uitableview-backgroundcolor-always-gray-on-ipad

        // clearColor is what I wanted, and it worked, also tested with purpleColor
        cellTrigger.backgroundColor =[UIColor clearColor];
        return cellTrigger;

}


0

যদি আপনার অ্যাপ্লিকেশন আইফোন এবং আইপ্যাড উভয়কে লক্ষ্য করে তবে আপনি এটি এটি করতে পারেন:

[myTableView setBackgroundColor:[UIColor clearColor]]; // this is for iPhone

if ([[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPhone) {
    [myTableView setBackgroundView:nil];
    [myTableView setBackgroundView:[[UIView alloc] init]];
} // this is for iPad only

লক্ষ্য করুন যে টেবিলভিউ বরাদ্দ এআরসি-র জন্য স্বতঃসংশ্লিষ্ট নয়।


0

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

if ([myViewController.myTableView respondsToSelector:@selector(setBackgroundView:)]) {
    [myViewController.myTableView setBackgroundView:nil];
}
myViewController.myTableView.backgroundColor = [UIColor clearColor];
myViewController.view.backgroundColor = [UIColor clearColor];

0
  • সিমুলেটিং আইপ্যাড 2
  • আইওএস 7.1 8.3 এর মাধ্যমে চালানো
  • এক্সকোড 6.3 থেকে নির্মিত

উপরের কোনটিই আমার ইউআইভিউউকন্ট্রোলার-> ইউআইটিএবলভিউয়ের জন্য কোনও একক এক্সআইবি ব্যবহার করে নির্দিষ্ট করা হয়নি। কী কাজটি ছিল পুরো সেটআপটিকে একটি স্টোরিবোর্ডে সরানো এবং আইবি পরিদর্শক ব্যবহার করে পটভূমির রঙ সেট করা।


0

আমিও এই ধরণের সমস্যা পেয়েছি। UITableViewপটভূমির রঙ সবসময় হতে হবে groupTableViewBackgroundColorকোন ব্যাপার আমি কি করে।

লক্ষণটি এই ইস্যুটির মতো - ইউআইটিএবলভিউ প্রদর্শিত হওয়ার আগেই এর পটভূমির রঙটি পুনরায় সেট করছে

আমি initফাংশনে ব্যাকগ্রাউন্ড রঙ সেট করার পরে , এটি সঠিক। ইন viewDidLoadএবং viewWillAppearপর্যায়, এটা সঠিক। তবে, এর মধ্যে viewDidAppear, পটভূমির রঙটি তার ডিফল্ট রঙে পুনরায় সেট করা হয়।

গৃহীত উত্তরটি এখন কাজ করে না।

[myTableView setBackgroundView:nil];
[myTableView setBackgroundView:[[UIView alloc] init]];

এখানে আমার সমাধান। শুধু tableView এর পটভূমির রঙ সেট viewDidLoadফাংশন বদলে initবা viewWillAppear

- (void)viewDidLoad {
    [super viewDidLoad];
    self.tableView.backgroundColor = [UIColor clearColor];
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.