আমি কীভাবে ইউআইটিএবলভিউ নির্বাচনটি অক্ষম করতে পারি?


1192

আপনি যখন একটিতে একটি সারিটি ট্যাপ করেন UITableView, সারিটি হাইলাইট এবং নির্বাচন করা হয়। একটি সারি আলতো চাপার ফলে কি কিছুই নিষ্ক্রিয় হয় না?


17
মূল প্রশ্নের একটি খারাপ শিরোনাম রয়েছে। ওপি প্রাথমিকভাবে অক্ষম করতে চায় selectionএবং অবশ্যই highlightingএটি দিয়ে অক্ষম হয়ে যায়। অনেক বেশি ভোট দেওয়া উত্তরগুলি ব্যাখ্যা করে যে কীভাবে disable selectionঅক্ষম করা যায় এবং কীভাবে তা চিহ্নিত করা যায় না highlighting। ব্যবহারের হাইলাইট শুধুমাত্র অক্ষম করতে cell.selectionStyle = .Noneবা ফিরে যেতেstoryboard / cell / Selection = None
Andrej

শিরোনাম বা পোস্ট হয় দয়া করে আপডেট করুন। আমি বিভ্রান্ত এবং এই প্রশ্নের ভিত্তিতে, সরবরাহ করা উত্তরগুলি কী বোঝাতে চাইছে তা আমার কোনও ধারণা নেই।
ড্যানিয়েল স্প্রিংগার

উত্তর:


603

আমার জন্য, নিম্নলিখিতটি ভাল কাজ করেছে:

tableView.allowsSelection = false

এর অর্থ didSelectRowAt#সহজভাবে কাজ করবে না। এর অর্থ হল, টেবিলের একটি সারি স্পর্শ করা, পুরোপুরি কিছুই করবে না। (এবং তাই স্পষ্টতই, এখানে কখনও নির্বাচিত-অ্যানিমেশন থাকবে না))

(দ্রষ্টব্য, যদি ঘরগুলিতে, আপনার UIButtonবা অন্য কোনও নিয়ন্ত্রণ থাকে তবে অবশ্যই সেই নিয়ন্ত্রণগুলি এখনও কাজ করবে the টেবিল সেলটিতে আপনার যে কোনও নিয়ন্ত্রণগুলি ঘটে, এটি ইউআইটিএবলভিউর আপনাকে "একটি সারি নির্বাচন করার" অনুমতি দেওয়ার ক্ষমতাকে সম্পূর্ণ সম্পর্কযুক্ত নয়) ব্যবহার didSelectRowAt#।)

আরেকটি বিষয় লক্ষণীয়: UITableViewএডিট মোডে থাকা অবস্থায় এটি কাজ করে না । সম্পাদনা মোডে ঘর নির্বাচন সীমাবদ্ধ করতে নীচের মতো কোডটি ব্যবহার করুন:

tableView.allowsSelectionDuringEditing = false 

6
এটি অবশেষে আমার পক্ষে কাজ করেছে, আমি সেল ব্যবহার করার চেষ্টা করেছি se সিলেকশনস্টাইল = ইউআইটিএবলভিউসেলসিলিলেশনস্টাইলনোন; কিন্তু এটি কার্যকর হয়নি। একটি বিষয় লক্ষণীয়: এটি হওয়া উচিত: টেবিলভিউ.ইলসস্লেশন = না; মিথ্যা নয়
tony.tc.leung

6
আমি মনে করি, এটি সেরা বিকল্প। এগুলি সহ কক্ষের বোতামগুলি সক্রিয়, তবে পাঠ্য সক্রিয় নয়।
ফাহিম পার্কার

513
এটি কীভাবে গৃহীত উত্তর এবং এর অনেকগুলি বেশি ভোট রয়েছে? এতে প্রশ্নের উত্তর মোটেই আসে না! selectionStyleআপনার ঘরটিতে সম্পত্তি সেট করতে হবে : cell.selectionStyle = UITableViewCellSelectionStyle.Noneসুইফ্টে বা cell.selectionStyle = UITableViewCellSelectionStyleNoneউদ্দেশ্য-সি তে in
নোডবেস

5
এটি আমার জন্য দ্রুত 2 এ কাজ করেtableView.allowSelection = false
খানাদ

15
যা ইচ্ছা তা নির্ভর করে এটি করার কয়েকটি উপায় রয়েছে। কোনও নির্বাচনের শৈলী এবং কোনও নির্বাচন উভয়ই কাজ করতে পারে না, বা উভয়ই ব্যর্থ হতে পারে। এখানে একটি উদাহরণ। আপনি যদি ঘরটি নির্বাচন করতে চান এবং কল করতে চান tableViewDidSelectRowAtIndexPath, cell.selectionStyle = .Noneতা পছন্দসই। যদি আপনি না চান বা সেই প্রতিনিধি ফাংশনটি কল করার জন্য যত্ন নিচ্ছেন (যেমন একটি টেবিলভিউসেলটিতে একটি পাঠ্যক্ষেত্র রয়েছে) সেটিংস tableView.allowsSelection = falseঠিক আছে।
মেডেকে 2

1963

আপনাকে যা করতে হবে তা হ'ল হয় নির্বাচনের শৈলীটি সেট UITableViewCellব্যবহার করে:

উদ্দেশ্য গ:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

অথবা

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

সুইফট 2:

cell.selectionStyle = UITableViewCellSelectionStyle.None

সুইফট 3 এবং 4.x:

cell.selectionStyle = .none

আরও নিশ্চিত করুন যে আপনি হয় -tableView:didSelectRowAtIndexPath:নিজের টেবিল ভিউ ডেলিগেটে বাস্তবায়ন করেন না বা আপনি যদি সেগুলি প্রয়োগ করেন তবে আপনার কোনও পদক্ষেপ নিতে চান এমন কক্ষগুলি স্পষ্টভাবে বাদ দিন।

এখানে এবং এখানে আরও তথ্য


122
@ টনি আপনার ঘরের অভ্যন্তরে একটি ইউআইটিেক্সটফিল্ড থাকলে এটি খারাপ ধারণা।
অনিরুদ্ধ যোশি

73
@ টনিমিলিয়ন যদি আপনি অন্তর্নির্মিত সম্পাদনাগুলি যেমন সোয়াইপ-টু-ডিলিট ব্যবহার করতে চান তবে এটি একটি খারাপ ধারণা। যদি আপনি ব্যবহারকারীর অন্তর্ভুক্তকরণ সক্ষম করে থাকেন না তবে মুছুন বোতামটি ব্যবহারকারী স্পর্শ ইভেন্টগুলিতে সাড়া দেয় না।
কার্লোস পি

47
এই থ্রেডে দেরি হয়ে গেছে, তবে ব্যবহারকারী-পরিবর্তনের পরিবর্তে সেল.ইলস নির্বাচন ব্যবহার করুন। এটি ঘরের ইন্টারঅ্যাকশন পদ্ধতিগুলি থামিয়ে দেয় তবে নিয়মিত ইউআইভিউ উত্তরদাতা স্টাফকে ব্লক করে না।
ক্রিস সি

4
সেল.ইউসারআইন্টেক্রেশনএনবলযোগ্য = কোনও সেট করা কোনও ডডসিলিটরোউএটিআইডেক্সপথকে ট্রিগার করা বন্ধ করবে না।
user4951

25
আমি উত্তরটি দিয়েছি, তবে কেবল স্পষ্ট করেই, ওপি কেবল "হাইলাইটিং" অক্ষম করার জন্য বলেছিল, পুরো সেল ইন্টারঅ্যাকশনটি অক্ষম করার জন্য নয়, সুতরাং এই সমস্ত মন্তব্যগুলি অফটোপিক।
ফ্রেডেরিক ইয়েসিড পেঁয়া সানচেজ

353

কারণ আমি সম্প্রতি এই পোস্টটি পড়েছি এবং এটি আমাকে সহায়তা করেছে, আমি উত্তরগুলি (উত্তরোত্তর জন্য) একীভূত করার জন্য আরও একটি উত্তর পোস্ট করতে চেয়েছিলাম।



সুতরাং, আপনার কাঙ্ক্ষিত যুক্তি এবং / বা ফলাফলের উপর নির্ভর করে আসলে 5 টি পৃথক উত্তর রয়েছে:

1. ঘরের অন্য কোনও মিথস্ক্রিয়া পরিবর্তন না করে নীল হাইলাইটিং অক্ষম করতে:

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

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

দ্রষ্টব্য : যেমন টনি মিলিয়ন উপরে উল্লিখিত হয়েছে, এটি প্রতিরোধ করে নাtableView:didSelectRowAtIndexPath:। আমি প্রায়শই "যদি" বিবৃতি দিয়ে প্রায়শই পাই, প্রায়শই বিভাগটির জন্য পরীক্ষা করা এবং নির্দিষ্ট বিভাগের জন্য ক্রিয়া এড়ানো।

এইরকম একটি ঘরে আলতো চাপার জন্য আমি পরীক্ষা করার জন্য অন্য উপায়টি ভেবেছিলাম:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // A case was selected, so push into the CaseDetailViewController
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if (cell.selectionStyle != UITableViewCellSelectionStyleNone) {
        // Handle tap code here
    }
}



পুরো টেবিলের জন্য এটি করতে, আপনি টেবিলের প্রতিটি কক্ষে উপরের সমাধানটি প্রয়োগ করতে পারেন, তবে আপনি এটিও করতে পারেন:

[tableView setAllowsSelection:NO];

আমার পরীক্ষায় এটি এখনও এর অভ্যন্তরে নিয়ন্ত্রণগুলি UITableViewCellইন্টারেক্টিভ হওয়ার অনুমতি দেয় ।


৩. কোনও সেলকে "কেবল পঠনযোগ্য" করতে, আপনি কেবল এটি করতে পারেন:

[cell setUserInteractionEnabled:NO];



4. একটি সম্পূর্ণ টেবিল "কেবল পঠনযোগ্য" করতে

[tableView setUserInteractionEnabled:NO];



৫. কোনও সেল হাইলাইট করতে হবে কিনা তা ফ্লাইটে নির্ধারণ করতে (যা এই উত্তর অনুসারে নির্বাচিতভাবে অন্তর্ভুক্ত রয়েছে), আপনি নিম্নলিখিত UITableViewDelegateপ্রোটোকল পদ্ধতিটি প্রয়োগ করতে পারেন :

- (BOOL)tableView:(UITableView *)tableView 
   shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath

3
আপনি যদি কোনও নিব থেকে ঘর নকশাটি লোড করেন, চেকবক্সটি (আইবিতে) # 3 (এবং # 4 এর জন্য টেবিলগুলিতে) জন্য ঠিক কাজ করবে। # 4 বনাম # 2 এর জন্য, ঘরের অভ্যন্তরে নিয়ন্ত্রণগুলি ইন্টারেক্টিভ হবে কিনা তাও কি পার্থক্য?
লিলবির্ডি

4
হ্যাঁ. আপনি যদি নির্বাচনটি অক্ষম করতে চান তবে ইউআইবাটনগুলি ইত্যাদির ... ব্যবহারকারীর মিথস্ক্রিয়াটিকে সমর্থন অব্যাহত রাখতে, # 2 ব্যবহার করুন। যদি আপনি সম্পূর্ণ পঠনযোগ্য ঘর চান তবে # 4 ব্যবহার করুন। অবশ্যই, আপনার অ-ইন্টারেক্টিভ কোষে ইউআইভিউস বা ইউআইআইএলবেল ব্যতীত কেন কিছু থাকবে তা আমার বাইরে। অন্য কেউ ঘটতে পারে এমন সময় কেউ হয়ত সমস্ত মিথস্ক্রিয়া অক্ষম করতে চায়।
mbm29414

8
# 4 একটি ভয়ানক ধারণা, এটি করার ফলে টেবিলের
সাইমন

4
@ সিমন আসলে, এটি কোনও ভয়ানক ধারণা নয়; এটি এমন একটি বিকল্প যা আপনার পরিস্থিতির উপর নির্ভর করে একটি ভাল বিকল্প হতে পারে বা নাও হতে পারে। এছাড়াও, # 4 ব্যবহারকারী স্ক্রোলিং অক্ষম করে; আপনি এখনও নিজের প্রয়োজন প্রয়োগ করতে পারে। আমি সম্মত # 4 দরকারী অনেক নয়, তবে এটি কোনও ভয়ঙ্কর ধারণা নয়।
mbm29414

3
সম্পূর্ণতার জন্য আপনি দয়া করে একটি চিৎকার যোগ করতে পারেন tableView:shouldHighlightRowAtIndexPath:, যা সাধারণত (সর্বদা নয়) আমার পছন্দসই পদ্ধতি।
বেনজাহান

81

আমি বিশ্বাস করি এর সংক্ষিপ্ত বিবরণে এটি বাস্তবায়নের আমার নিজের অভিজ্ঞতার ভিত্তিতে সঠিক উত্তরগুলি রয়েছে:

আপনি যদি কেবল কয়েকটি ঘরের জন্য নির্বাচনটি অক্ষম করতে চান তবে ব্যবহার করুন:

cell.userInteractionEnabled = NO;

নির্বাচন বাধা দেওয়ার পাশাপাশি এটি টেবিল ভিউ: ডায়সিলিটরউএটিআইডেক্সপ্যাথ: এটি সেট করা কক্ষগুলির জন্য ডাকা হচ্ছে। (এই উত্তরের জন্য ক্রেডিট টনি মিলিয়নে যায়, ধন্যবাদ!)

আপনার ঘরে যদি আপনার বোতামে ক্লিক করতে হয় তবে আপনার পরিবর্তে এটি করা দরকার:

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

এবং আপনাকে ঘরে প্রবেশের কোনও ক্লিক উপেক্ষা করতে হবে - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

আপনি যদি পুরো টেবিলের জন্য নির্বাচনটি অক্ষম করতে চান তবে ব্যবহার করুন:

tableView.allowsSelection = NO;

(পাওলো দে ব্যারোসকে ধন্যবাদ, ধন্যবাদ!)


আমাদের ঘরে যদি একটি বোতাম থাকে?
উমায়ের আফজাল

56

আইওএস 6.0 হিসাবে, UITableViewDelegateআছে tableView:shouldHighlightRowAtIndexPath:। (আইওএস ডকুমেন্টেশনে এটি সম্পর্কে পড়ুন ))

এই পদ্ধতিটি আপনাকে নির্দিষ্ট সারিগুলি ঘরের নির্বাচনের স্টাইলটি পরিবর্তন না করে, কোষের ইভেন্টের হ্যান্ডলিংয়ের সাথে বিশৃঙ্খলা না করে userInteractionEnabled = NOবা এখানে নথিভুক্ত অন্য কোনও কৌশল অবলম্বন না করে অবিশ্বাস্যরূপে চিহ্নিত করতে দেয় (এবং স্পষ্টতই, অপছন্দযোগ্য) mark


2
এই থ্রেড জুড়ে হোঁচট খেয়েছে এবং এর আগে আরও অনেক উত্তর দেখে আমি হতবাক হয়ে গিয়েছিলাম। এটি কোনও সন্দেহ ছাড়াই সঠিক উপায় way
মৌমাছি

2
এটি অবশ্যই সঠিক এবং একমাত্র উত্তর যা বিবেচনা করা উচিত। ব্যবহারকারীর অন্তর্ভুক্তকরণের উল্লেখ করে অন্য যে কোনও কিছুই সম্পূর্ণ ভুল।
মাত্তিওহে

50

নীচের ছবিতে প্রদর্শিত ইন্সপেক্টর ফলকে বিকল্পটি (ইউআইটিএলভিউ প্রোপার্টি) NoSelectionথেকে পছন্দ করে আপনি ইন্টারফেস বিল্ডার থেকে সারি নির্বাচনও অক্ষম করতে পারেন Youselection

ইউআইটিএবলভিউ পরিদর্শক


2
সেরা সমাধান আইএমএইচও
ইতাই স্পেক্টর

আমি প্রায়শই এই সমাধানটি ব্যবহার করি
এভেসেনেভ


36

আপনার UITableViewCellএর XIB এর অ্যাট্রিবিউট পরিদর্শক সেট মান Selectionথেকে None

এখানে চিত্র বর্ণনা লিখুন


এটাই আমার দরকার ছিল। আমি এখনও ডিডলেক ... বিজ্ঞপ্তি চেয়েছিলাম তবে নির্বাচনের দৃশ্যমান ইঙ্গিত ছাড়াই। ধন্যবাদ!
টিমোথি ট্রিপ

খুশি এটা সাহায্য! :)
যায়েদ পাঠান

35

আপনি যদি নির্বাচনটি কেবল ফ্ল্যাশ করতে চান তবে নির্বাচিত অবস্থায় না থেকে, আপনি কল করতে পারেন in

didSelectRowAtIndexPath

অনুসরণ

[tableView deselectRowAtIndexPath:indexPath animated:YES];

সুতরাং এটি নির্বাচিত রাষ্ট্রটিকে ফ্ল্যাশ করবে এবং প্রত্যাবর্তন করবে।


3
এই পদ্ধতির সাথে, সারিটি তাত্ক্ষণিকভাবে হাইলাইট করে এবং তারপরে অর্ধ-সেকেন্ডের চেয়ে বেশি হয়ে যায়। অ্যাপল এইভাবে তাদের সেটিংস মেনুগুলিকে শৈলী করে, তাই এটি আমার কাছে ভাল লাগে।
ভিন্সফায়ার

34

সুইফটের জন্য কারও উত্তর প্রয়োজন থাকলে :

cell.selectionStyle = .None

1
আমরা এই cell.selectionStyle = UITableViewCellSelectionStyle.None ব্যবহার করতে পারেন
bably


28

UITableViewDelegateপ্রোটোকল থেকে আপনি পদ্ধতিটি ব্যবহার করতে পারেন willSelectRowAtIndexPath এবং return nilযদি না চান সারিটি নির্বাচন করা।

একই পদ্ধতিতে আপনি willDeselectRowAtIndexPathপদ্ধতিটি ব্যবহার করতে পারেন এবং return nilআপনি যদি না চান সারিটি নির্বাচিত করতে চান।


5
আমি এই পদ্ধতিটি পছন্দ করি না কারণ এটি স্পর্শ পর্যন্ত অবধি সেলটিকে তার হাইলাইটেড অবস্থায় দেখায়।
kbanman

2
ঠিক এ কারণেই আমি এটি পছন্দ করি :-)
জোরিস ওয়েমার

24

1- আপনাকে যা করতে হবে তা হ'ল হয় নির্বাচনের স্টাইলটিUITableViewCell ব্যবহার করে হয়:


উদ্দেশ্য গ:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

অথবা

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];


সুইফট 2:

cell.selectionStyle = UITableViewCellSelectionStyle.None


সুইফট 3:

cell.selectionStyle = .none


2 - বাস্তবায়ন করবেন না - tableView:didSelectRowAtIndexPath:আপনার টেবিল ভিউতে delegateবা আপনি যদি প্রয়োগ করেন তবে আপনার কোনও পদক্ষেপ নিতে চান এমন কক্ষগুলি স্পষ্টভাবে বাদ দিন।

3 - আরও, আপনি স্টোরিবোর্ড থেকে এটিও করতে পারেন। টেবিল ভিউ সেলের অধীনে টেবিল ভিউ সেল এবং বৈশিষ্ট্য পরিদর্শকতে ক্লিক করুন, সিলেকশনের পাশের ড্রপ ডাউনটি কোনওটিতে পরিবর্তন করুন।


4 - আপনি (আইওএস) এক্সকোড 9, সুইফট 4.0 এ কোডটি ব্যবহার করে টেবিল সেল হাইলাইটটি অক্ষম করতে পারেন

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


        let cell = tableView.dequeueReusableCell(withIdentifier: "OpenTbCell") as! OpenTbCell
        cell.selectionStyle = .none
        return cell


}

20

উদ্দেশ্য গ:

  1. স্নিপেটের নীচে হাইলাইটিং অক্ষম করুন তবে এটি কলটিও অক্ষম করে didSelectRowAtIndexPath। আপনি যদি বাস্তবায়ন না করে থাকেন didSelectRowAtIndexPathতবে নীচের পদ্ধতিটি ব্যবহার করুন। আপনি টেবিল তৈরি করার সময় এটি যুক্ত করা উচিত। এটি বোতাম এবং UITextFieldকোষের অভ্যন্তরে যদিও কাজ করবে ।

    self.tableView.allowsSelection = NO;
  2. স্নিপেটের নীচে হাইলাইটিং অক্ষম করুন এবং এটি কলটি অক্ষম করে না didSelectRowAtIndexPath। কক্ষে নির্বাচন করার শৈলীর মধ্যে নেই তে সেট করুনcellForRowAtIndexPath

    cell.selectionStyle = UITableViewCellSelectionStyleNone;
  3. স্নিপেটের নীচে কক্ষের সমস্ত কিছু অক্ষম করুন। এই করতে মিথষ্ক্রিয়া নিষ্ক্রিয় করা হবে buttons, textfields:

    self.tableView.userInteractionEnabled = false;

সুইফট:

নীচে Swiftউপরের Objective-Cসমাধানগুলির সমতুল্য :

  1. প্রথম সমাধানের প্রতিস্থাপন

    self.tableView.allowsSelection = false
  2. দ্বিতীয় সমাধানের প্রতিস্থাপন

    cell?.selectionStyle = UITableViewCellSelectionStyle.None
  3. তৃতীয় সমাধানের প্রতিস্থাপন

    self.tableView.userInteractionEnabled = false

19

টাইপ করার চেষ্টা করুন:

cell.selected = NO;

এটি যখন প্রয়োজন হবে তখন আপনার সারিটি অনির্বাচিত করবে।

সুইফট 3 এ ...

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let r = indexPath.row
    print("clicked .. \(r)")
    tableView.cellForRow(at: indexPath)?.setSelected(false, animated: true)
}

14

আমি সম্পত্তির UITableViewCellব্যবহারের উপর নিষেধাজ্ঞার নিয়ন্ত্রণ রাখার সাথে আমি এটিকে বেশ মজাদারভাবেও লড়াই করছি userInteractionEnabled। আমার কাছে সেটিংগুলির জন্য 3 টি সেল স্ট্যাটিক টেবিল, তারিখ সহ 2, অন / অফ স্যুইচ সহ 1 টি রয়েছে। স্টোরিবোর্ড / আইবিতে খেলার পরে আমি নীচের অংশটিকে একটি অ-বাছাইযোগ্য করতে সক্ষম হয়েছি, তবে আপনি যখন এটিকে ট্যাপ করেন তখন শীর্ষ সারির একটি থেকে অদৃশ্য হয়ে যায়। এখানে আমার সেটিংস ইউআইটিএবলভিউয়ের একটি ডাব্লুআইপি চিত্র রয়েছে:

সেটিংস ইউআইটিএবলভিউ

আপনি যদি তৃতীয় সারির ট্যাপ করেন তবে কিছুই ঘটে না, নির্বাচন দ্বিতীয় সারিতে থাকবে। কার্যকারিতা কার্যত অ্যাপলের ক্যালেন্ডার অ্যাপ্লিকেশনটির যোগ ইভেন্ট ইভেন্ট নির্বাচনের স্ক্রিনের অনুলিপি।

কোডটি আশ্চর্যজনকভাবে সামঞ্জস্যপূর্ণ, সমস্তভাবেই আইওএস 2 = / এর নিচে compatible

- (NSIndexPath *)tableView: (UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row == 2) {
        return nil;
    }
    return indexPath;
}

এটি কারওর মধ্যে বাছাইয়ের স্টাইলটি সেট করার সাথে কাজ করে, তাই সেল টাচ ডাউন ইভেন্টগুলিতে ঝাঁকুনি দেয় না


11

আমরা কোড লিখতে পারি

 cell.selectionStyle = UITableViewCellSelectionStyleNone;

কিন্তু যখন আমাদের লাইনের উপরে কাস্টম সেল xib থাকে তখন সেই সময়ে সতর্কতা দেয়

কাস্টম সেল xib

ইন্টারফেস নির্মাতা থেকে আমাদের কোনও পছন্দের স্টাইল সেট করা দরকার


11

আপনাকে কেবল এই কোডটি সেলফোরআউটিইন্টেক্সপথে রাখতে হবে

কক্ষের নির্বাচনের বৈশিষ্ট্যটি অক্ষম করতে: (ঘরটি ট্যাপ করার সময়)।

cell.selectionStyle = UITableViewCellSelectionStyle.None

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

10

এটা চেষ্টা কর

cell.selectionStyle = UITableViewCellSelectionStyleNone;

এবং

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

এবং আপনি ইন্টারফেস বিল্ডার ব্যবহার করে নির্বাচন শৈলীও সেট করতে পারেন।



7

যদিও এটি সেরা এবং সবচেয়ে সহজ সমাধান নির্বাচনের সময় হাইলাইটটি প্রদর্শন থেকে বাধা দেওয়ার জন্য

cell.selectionStyle = UITableViewCellSelectionStyleNone;

আমি এটিও পরামর্শ দিতে চাই যে এটি সারিটি নির্বাচিত হয়েছে এবং তারপরে এটি বন্ধ করে দেওয়া হয়েছে তা সংক্ষেপে দেখাতে মাঝে মাঝে দরকারী occasion এটি ব্যবহারকারীরা কী নির্বাচন করবেন তা নিশ্চিতকরণের সাথে সতর্ক করে:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     [tableView deselectRowAtIndexPath:indexPath animated:NO];
...
}


6

ইউআইটিবেলভিউসেলটি হাইলাইট করা অক্ষম করতে

cell.selectionStyle = UITableViewCellSelectionStyleNone;

এবং ব্যবহারকারীর ঘরের সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেওয়া উচিত নয়।

cell.userInteractionEnabled = NO;

6

আপনি যেভাবে UITableViewCellSelectionStyleNone/ ব্যবহার করতে না চান সে ক্ষেত্রে একই প্রভাব অর্জন করতে আপনি ব্যাকগ্রাউন্ডের রঙ সাফ করতে সেট করতে পারেন UITableViewCellSelectionStyleNone

আপনি নিম্নলিখিতগুলির মতো কোড ব্যবহার করবেন:

UIView *backgroundColorView = [[UIView alloc] init];
backgroundColorView.backgroundColor = [UIColor clearColor];
backgroundColorView.layer.masksToBounds = YES;
[cell setSelectedBackgroundView: backgroundColorView];

এটি প্রতিটি ঘরে আপনার অতিরিক্ত রঙিন দর্শন যোগ করার কারণে আপনার পারফরম্যান্সকে হ্রাস করতে পারে


6

তুমি ব্যবহার করতে পার :

cell.selectionStyle = UITableViewCellSelectionStyleNone;

আপনার ইউআইটিএবলভিউয়ের সূচক পাথ পদ্ধতিতে সারিটির জন্য ঘরে।

এছাড়াও আপনি ব্যবহার করতে পারেন:

[tableView deselectRowAtIndexPath:indexPath animated:NO];

সারণীদর্শনটিতে didselectroatindexpath পদ্ধতি।


এটি এখন cell.selectionStyle = UITableViewCellSelectionStyle.noneসুইফ্ট 3-এ রয়েছে
ড্যান

5

আপনি এটি ব্যবহার করতে পারেন

cell.selectionStyle = UITableViewCellSelectionStyleNone;

5

তুমি ব্যবহার করতে পার ....

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];



5

আপনি স্টোরিবোর্ড থেকে এটি করতে পারেন। টেবিল ভিউ সেলের অধীনে টেবিল ভিউ সেল এবং বৈশিষ্ট্য পরিদর্শকতে ক্লিক করুন, সিলেকশনের পাশের ড্রপ ডাউনটি কোনওটিতে পরিবর্তন করুন।

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