سؤال

أنا أستخدم الطريقة التالية في طلبي:

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

في هذه الطريقة باستخدام indexPath.row يمكنني الحصول على رقم الصف في كل صف.

لكنني أرغب بالفعل في الوصول إلى الخلية الموجودة في هذا الصف وإجراء بعض التنسيق على تلك الخلية فقط.

فأرشدوني.

هل كانت مفيدة؟

المحلول

وربما يكون هناك سوء فهم. ومن المفترض أن الطريقة التي يتم نقلا لقول tableView الصف الذي لعرضها في أن indexPath. لذا، كلما يسأل tableView لهذا الأسلوب، فإنه يفعل ذلك لأنه لا يوجد خلاف في هذه indexPath حتى الان.

ورمز قالب سيتم إنشاء خلية جديدة أو dequeue واحد:

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

     static NSString *CellIdentifier = @"Cell";

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) {
              cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
     }

وبعد ذلك يمكنك الوصول cell لتكوين محتوى كل خلية أو إضافة محتوى إلى contentView.

إذا تلاعب تنسيق خلية على أساس لكل صف (مثل لون cell.textLabel) يجب عليك أن تفعل هذا في طريقة مندوب التالية:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

نصائح أخرى

وعلى الرغم من أن إجابات أخرى سوف تعمل بشكل جيد، ولكنها ستكون مجرد تغيير الخلية التي المستخدم استغلالها جرا. لحالتي أردت أن تغيير الخلايا الأخرى كذلك. بعد البحث حولها، وحاولت:

[[tableView cellForRowAtIndexPath:5 setAccessoryType:UITableViewCellAccessoryNone];

وهذا لا يعمل، لأن IndexPath ليس صحيحا. (indexpath.row، مع ذلك). لذا، عند النظر حتى وثيقة، اكتشفت أن نتمكن من استخدام NSIndexPath لترميز صف في قيمة NSIndexPath. هنا هو رمز العمل:

[[tableView cellForRowAtIndexPath: [NSIndexPath indexPathForRow:5 inSection:0]] setAccessoryType:UITableViewCellAccessoryNone];

وبهذه الطريقة، يمكنك الوصول إلى الخلية في أي مكان، AT ANY ROW / القسم، شريطة أن يكون لديك كائن tableview.

وآمل أن يساعد هذا شخص.

يمكنك الوصول إلى أ مرئي الخلية باستخدام UITableView -cellForRowAtIndexPath طريقة.من UITableView مرجع:

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

قيمة الإرجاع
كائن يمثل خلية من الجدول أو لا شيء إذا كانت الخلية غير مرئية أو أن يكون الفهرس خارج النطاق.

لكن (المنظمة البحرية الدولية) cellForRowAtIndexPath هو أفضل مكان لإعداد الخلية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top