ইউআইটিএবলভিউ পরিষ্কার পটভূমি


90

আমি বুঝতে পারি যে আইওএস 7 আনুষ্ঠানিকভাবে প্রকাশিত হয়নি এবং আমাদের এটি নিয়ে আলোচনা করা উচিত নয় তবে আমি এই সমস্যাটি বের করার চেষ্টা করতে গিয়ে পাগল হয়ে যাচ্ছি। আইওএস 6 এ, আমার টেবিলের দৃশ্যটি স্বচ্ছ এবং দুর্দান্ত লাগছিল। প্রথমবার আইওএস 7 চালানো হচ্ছে এবং পটভূমিটি সাদা।

আমি টেবিলের ব্যাকগ্রাউন্ড কালার, সেল কালার ইত্যাদি ইত্যাদি ইউআইকলার ক্লিয়ার কালারে তৈরি করার চেষ্টা করেছি তবে কোনও পরিবর্তন হয়নি।

কীভাবে এই সমস্যার সমাধান করবেন?

টেবিল


4
টেবিলটি backgroundViewপরিষ্কার করে দেওয়ার চেষ্টা করেছেন ?
পূর্বাবস্থায় ফিরুন

আপনি যেখানে ব্যাকগ্রাউন্ডের রঙটি সেট করছেন সেখানে কোডটি প্রদর্শন করতে পারেন? পিতামাতার দৃষ্টিভঙ্গি সম্পর্কে কী? সম্ভবত টেবিল দেখার ব্যাকগ্রাউন্ডটি পরিষ্কার তবে পিতামাতা তা নয়?
সোপার

আমি এই একই জিনিসটি লক্ষ্য করেছি কিন্তু যখন আমি একই অ্যাপটি ইনস্টল করেছি যা আমার বর্তমান সংস্করণটি আইওএস 7.0 এ পূর্বাভাস দিয়েছিল তখন তা ঘটেনি। এই সমস্যাটি কি তাহলে xCode5.0 এ থাকা?
টোটুমাস ম্যাক্সিমাস

উত্তর:


123
    // Fix for iOS 7 to clear backgroundColor
    cell.backgroundColor = [UIColor clearColor];
    cell.backgroundView = [[UIView new] autorelease];
    cell.selectedBackgroundView = [[UIView new] autorelease];

সেলফোর্ডআউটইন্ডেক্সপথে in

এছাড়াও, নিশ্চিত করুন যে আপনার টেবিলভিউটিতে স্বচ্ছ পটভূমি রয়েছে (স্টোরিবোর্ডে): এখানে চিত্র বর্ণনা লিখুন


জর্জ, পদ্ধতির অভ্যন্তরে সেই কোডটি যুক্ত করুন - (ইউআইটিএবলভিউসেল *) টেবিল ভিউ: (ইউআইটিবেলভিউ *) টেবিলভিউ সেলফরআউট ইন্ডেক্সপথ: (এনএসআইডেক্সপথ *) ইনডেক্সপথ
আইয়ানস্টলিংস

4
কেসগুলির জন্য, আপনার যদি সত্যই নির্বাচিতব্যাকগ্রাউন্ডভিউয়ের প্রয়োজন হয় তবে আপনি নিম্নলিখিতটি সেলফোর্ডআটইন্ডেক্সপথে রাখতে পারেন: সেল.স্লেজডব্যাকগ্রাউন্ডভিউ = [[[ইউআইআইমেজভিউ বরাদ্দ] টিউবিউইচ ইমেজ: [ইউআইআইমেজ ইমেজ নামকরণ: @ "আপনার বিজিআইমেজ.পিএনজি"]] অটোরিলিজ]; বা এমনকি জাগ্রত থেকে ফ্রেমনিব: স্ব.স্লেটেডব্যাকগ্রাউন্ডভিউ = ... দ্রষ্টব্য, এটি: স্ব.ব্যাকগ্রাউন্ড কালার = [ইউআইকলার ক্লিয়ার কালার]; আইওএস 7 এর অধীনে জাগ্রত থেকে ফর্মনিব কাজ করে না। তবে: সেল.ব্যাকগ্রাউন্ড কালার = [ইউআইকিওলোর ক্লিয়ার কালার]; আইওএস 7.0
স্ল্যামার

11
কেবল সারিটি যুক্ত করতে হবে: সেল.ব্যাকগ্রাউন্ডার कलার = [ইউআইকলার ক্লিয়ার কালার];
এভিয়া

এটি কবজ সেল এর মত কাজ করে back
বিপোল্যাট

কীভাবে সুইফটে এটি করবেন?
কাদির হুসেন

58

এটা রাখো:

cell.backgroundColor = [UIColor clearColor];

এই বিভাগে:

cellForRowAtIndexPath

4
আইওএস In-এ, এটি backgroundViewএকটি খালি ভিউতে সেট করা যথেষ্ট , তবে আইওএস for এর জন্য এই অতিরিক্ত কোডের প্রয়োজন
কেভিন সীমানা

25

প্রথমে ব্যাকগ্রাউন্ডভিউ সেট করার চেষ্টা করুন।

[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundColor:[UIColor clearColor]];

এটি আইওএস 7 এর সাথে ডকুমেন্টেশনের কোনও পরিবর্তন কিনা বা নিশ্চিতভাবেই নিশ্চিত নয় যে কেবল পটভূমির রঙকে প্রভাবিত করে না, তবে ইউআইটিএবলভিউ ক্লাস রেফারেন্স @ প্রোপার্টি ব্যাকগ্রাউন্ডভিউ অনুযায়ী

"টেবিল দর্শনের পটভূমির রঙ সেট করতে আপনাকে অবশ্যই এই সম্পত্তিটি নির্ধারণ করতে হবে" "

সম্পাদনা: সংশোধন কোড সিনট্যাক্স


25

এটি উত্তর দেওয়া হয়েছে, কিন্তু ভুলভাবে অনেক উপায়ে।

আপনাকে নীচের প্রতিনিধি পদ্ধতিটি প্রয়োগ করতে হবে:

    - (void)tableView:(UITableView *)tableView  willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [cell setBackgroundColor:[UIColor clearColor]];
}

আপনি সেলফোর্ডআউটইন্টেক্সপথে ঠিক করতে পারবেন না কারণ এটি সেলটি রেন্ডার হওয়ার পরে রয়েছে এবং ব্যাকগ্রাউন্ডটি পরিষ্কার হয়ে যাওয়ার আগে এটি ধীরে ধীরে একটি সাদা ব্যাকগ্রাউন্ড ফ্ল্যাশ করবে (ধীর ডিভাইসে)।

এই প্রতিনিধি পদ্ধতিটি ব্যবহার করুন এবং আপনার সমস্যাগুলি সমাধান করা হবে!


4
হ্যাঁ. আইওএস 7 এর জন্য এটি ব্যাকগ্রাউন্ডটি সাফ করার উপায়। উপরের অন্যান্য সমস্ত পরামর্শ কার্যকর নাও হতে পারে।
গিরিশ_ভিআর

15

প্রকৃতপক্ষে ঘরের পটভূমির রঙ পরিবর্তন করার জন্য সরকারীভাবে সঠিক স্থান ডকুমেন্টেশন অনুসারে আলাদা ( ইউআইটিএবলভিউসেল ক্লাস রেফারেন্স ):

আপনি পূর্বনির্ধারিত বা কাস্টম সেল ব্যবহার করুন না কেন, আপনি ব্যাকগ্রাউন্ডভিউ বৈশিষ্ট্য ব্যবহার করে বা উত্তরাধিকারসূত্রে প্রাপ্ত ব্যাকগ্রাউন্ড কালার সম্পত্তি পরিবর্তন করে ঘরের পটভূমি পরিবর্তন করতে পারেন। আইওএস 7-এ, ডিফল্টরূপে কক্ষগুলির একটি সাদা ব্যাকগ্রাউন্ড থাকে; আইওএসের পূর্ববর্তী সংস্করণগুলিতে, ঘরগুলি এনকোলেসিং সারণী দর্শনটির পটভূমির রঙের উত্তরাধিকারী। আপনি যদি কোনও ঘরের পটভূমির রঙ পরিবর্তন করতে চান তবে টেবিল-ভিউ: উইল ডিসপ্লেকেল: ফরআউটআইডেক্সপথ: আপনার টেবিল দেখার প্রতিনিধিটির পদ্ধতিতে এটি করুন।


আমি এটি চেষ্টা করছি, তবে দেখানো সমস্ত প্রথম কক্ষগুলির সাদা পটভূমি রয়েছে। আমি যদি স্ক্রল করে নতুন ঘর তৈরি করি তবে তাদের স্বচ্ছ পটভূমিটি আমি চাই। আর কী চেষ্টা করবেন তা নিশ্চিত নন…
ডেভিড ডানহাম

কিছু মনে করবেন না, এটি একটি সময়সীমার সমস্যা বলে মনে হচ্ছে। আমি জাগানোফ্র্যামনিবতে স্টাফ করছিলাম যা খুব তাড়াতাড়ি ছিল।
ডেভিড ডানহাম


6

এটি বেশ হতাশাব্যঞ্জক সমস্যা। এখানে আমার বর্তমান সমাধান:

এটি আপনার UITableViewCellসাবক্লাসে যুক্ত করুন।

- (void)didMoveToSuperview {
    [super didMoveToSuperview];

    self.backgroundColor = [UIColor clearColor];
}

ওহ খোদা. ধন্যবাদ. আমার রাত বাঁচিয়েছে। আপনার উত্তরটি গ্রহণযোগ্য হওয়া উচিত ছিল।
মিশাল শাটজ

5

এটি iOS7 + এ আমার জন্য কাজ করেছে:

self.tableView.backgroundColor =[UIColor blueColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = nil;`

এবং তারপর ভিতরে cellForRowAtIndexPath:

cell.backgroundColor = [UIColor clearColor];


4

এটি কেবল তখনই আমার পক্ষে কাজ করে যখন আমি প্রতিটি কক্ষের জন্য একটি পরিষ্কার ব্যাকগ্রাউন্ড রঙ এবং টেবিলের জন্যই একটি পরিষ্কার রঙ সম্পাদনা করি G

টেবিলের জন্য পরিষ্কার রঙ সেট করতে:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    initMenu()
    myTableView.backgroundColor = UIColor.clearColor()
}

কোষগুলির জন্য রঙ সেট করতে:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("tablecellid", forIndexPath: indexPath)
    cell.backgroundColor = UIColor.clearColor()
    return cell
}

3

একটি জিনিস সুন্দর। ইউআইটিবেলের ডিফল্ট রঙটি সাদা বলে মনে হচ্ছে (কেন জানি না)

পটভূমি সাদা

তবে আরও ভাল পরিবর্তন।


পারফেক্ট! এটাই ছিল নিখোঁজ শান্তি। কোডের অতিরিক্ত লাইন দরকার নেই!
মরফিউস 78


3

টেবিল দেখার জন্য আইবি আউটলেট তৈরি করুন @ আইবিআউটলেট দুর্বল ভার আপনার টেবিল: ইউআইটিবেল ভিউ!

ভিউ লোডে

override func viewDidLoad() {
    yourTable.delegate = self
    yourTable.dataSource = self

    yourTable.backgroundColor = UIColor.clearColor()
}

আপনি যদি সেলটির রঙ সাফ করতে চান তবে এটিকেও করুন

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    cell.backgroundColor = UIColor.clearColor() 

}

2

আমার অ্যাপ্লিকেশনটিতে, আমি আপডেট করার সময় backgroundColorআমার UITableViewCellক্লাসটি [UIColor clearColor]রঙে সেট করতে হয়েছিল iOS 7


2

চেষ্টা করুন

[myTable setSeparatorStyle:UITableViewCellSeparatorStyleNone];
[myTable setSeparatorInset:UIEdgeInsetsZero];

এবং

cell.backgroundColor = [UIColor clearColor];

2

আমার ক্ষেত্রে সেলটি একটি এক্সিব ব্যবহার করে তৈরি করা হয়েছিল। দেখে মনে হচ্ছে এক্সকোড 5 এর ইন্টারফেস বিল্ডারের ক্ষেত্রে সেল.ব্যাকগ্রাউন্ড কালার ক্লিয়ারার কালার সেট করতে সমস্যা হয়েছে।

আমার যা করার দরকার তা হ'ল প্রকৃতপক্ষে সেট করা

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// get the cell from the nib
//then force the backgroundColor
cell.backgroundColor = [UIColor clearColor]
return cell;
}

নিয়ন্ত্রণটি অ-
শূন্য



1
// Fix iOS 7 clear backgroundColor compatibility 
// I Think this two lines only are enough

cell.backgroundColor = [UIColor clearColor];
cell.selectedBackgroundView = [[UIView new] autorelease];

0

সেট

tableView.backgroundColor = [UIColor clearColor];

ভিউডিডলডে।

যদি এটি কাজ না করে থাকে, চেষ্টা করুন:

tableView.backgroundView = nil;

0

দ্রুত 3

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath)
    cell.backgroundColor = .clear
    cell.backgroundView = UIView()
    cell.selectedBackgroundView = UIView()
    return cell
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.