اي فون + UITableView + ارتفاع الصف
-
06-07-2019 - |
سؤال
وأنا تحديد ارتفاع الصف بلدي UITableView
باستخدام رمز التالي
[tableView setRowHeight: 100.00];
وأنا على استخدام خط واحد كفاصل في UITableView
.
وإفنثوو تحديد الارتفاع فوق، وارتفاع الصف لا يحصل التغيير.
المحلول
ويجب تنفيذ
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
وطريقة مندوب. والعودة 100.0 هناك.
نصائح أخرى
ويجب تجنب heightForRowAtIndexPath
إذا كان كل الصفوف هي من ارتفاع مماثل واستخدام الخاصية rowHeight
. استنادا إلى وثائق:
وهناك آثار الأداء باستخدام tableView: heightForRowAtIndexPath: بدلا من rowHeight. في كل مرة يتم عرض طريقة عرض جدول، فإنه يدعو tableView: heightForRowAtIndexPath: على مندوب عن كل الصفوف، والذي يمكن أن يؤدي إلى مشكلة كبيرة في الأداء مع إطلالة الجدول وجود عدد كبير من الصفوف (حوالي 1000 أو أكثر)
اقتباس فقرة> في فئة فرعية UITableViewController أنه يمكن القيام به، على سبيل المثال، في طريقة viewDidAppear
(وUITableViewController
لديه إشارة إلى tableView):
self.tableView.rowHeight = 79.f;
وتخبز ارتفاع الصف في الخلايا عند عرضها لأول مرة.
هل قمت بتعيين UITableView # rowHeight قبل تحديد مصدر البيانات منتديات
إن لم يكن، أن تفعل ذلك.
إذا لأي سبب من الأسباب كنت لا تستطيع، الخيار الآخر هو لاستدعاء UITableView # reloadData بعد ضبط ارتفاع الصف.
وفعلت مثل هذا، هنا tableobj
ليست سوى كائن UITableView
في طلبي.
- (void)viewDidLoad
{
[super viewDidLoad];
[tableObj setRowHeight:100.0f];
}
وأو التعامل معها في numberOfRowsInSection:
مثل:
- (NSInteger)tableView:(UITableView *)tblView numberOfRowsInSection:(NSInteger)section {
[tableObj setRowHeight:100.0f];
return [soandso count]; // soandso is my object
}
ولأن تعيين rowHeight
قبل تحديد مصدر البيانات. لأنها عملت لي (لارتفاع الصفوف متساوية).
والحل الأفضل والأنظف هو تنفيذ وظيفة مندوب (ربما ليس أفضل واحد إذا UITableView لديه العديد من الصفوف ...).
وأيضا، أعتقد أن UITableVieCell هي UIView بحيث يمكن تغيير ارتفاعها أولا ...
والتفويضات قوية جدا في اي فون ديف، وهنا UITableViewDelage:
ويمكنك أيضا تغيير indentForRow، displayCellForRow، heightForRow، تحرير الاشياء .....
وأنا لا أعتقد أن هناك مثل هذا الأسلوب في UITableView ...
وبدلا من ذلك يمكنك استخدام الخاصية rowHeight ...
محاولة،
tableView.rowHeight = 100؛