iPhone + UITableView + خلية الوصول لصف معين
-
05-07-2019 - |
سؤال
أنا أستخدم الطريقة التالية في طلبي:
- (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
هو أفضل مكان لإعداد الخلية.