اخطار‌های زیر رخ داد:
Warning [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 272 - File: inc/plugins/imeiJalaliDate.php PHP 7.3.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/imeiJalaliDate.php 272 preg_replace
/inc/plugins/imeiJalaliDate.php 210 imeiJGconvert
/inc/class_plugins.php 139 imeiJalaliDate
/inc/functions.php 506 pluginSystem->run_hooks
/global.php 459 my_date
/printthread.php 16 require_once
Warning [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 272 - File: inc/plugins/imeiJalaliDate.php PHP 7.3.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/imeiJalaliDate.php 272 preg_replace
/inc/plugins/imeiJalaliDate.php 210 imeiJGconvert
/inc/class_plugins.php 139 imeiJalaliDate
/inc/functions.php 506 pluginSystem->run_hooks
/global.php 460 my_date
/printthread.php 16 require_once
Warning [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 272 - File: inc/plugins/imeiJalaliDate.php PHP 7.3.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/imeiJalaliDate.php 272 preg_replace
/inc/plugins/imeiJalaliDate.php 103 imeiJGconvert
/inc/class_plugins.php 139 imeiJalaliDate
/inc/functions.php 506 pluginSystem->run_hooks
/global.php 466 my_date
/printthread.php 16 require_once
Warning [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 272 - File: inc/plugins/imeiJalaliDate.php PHP 7.3.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/imeiJalaliDate.php 272 preg_replace
/inc/plugins/imeiJalaliDate.php 104 imeiJGconvert
/inc/class_plugins.php 139 imeiJalaliDate
/inc/functions.php 506 pluginSystem->run_hooks
/global.php 466 my_date
/printthread.php 16 require_once
Warning [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 272 - File: inc/plugins/imeiJalaliDate.php PHP 7.3.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/imeiJalaliDate.php 272 preg_replace
/inc/plugins/imeiJalaliDate.php 105 imeiJGconvert
/inc/class_plugins.php 139 imeiJalaliDate
/inc/functions.php 506 pluginSystem->run_hooks
/global.php 466 my_date
/printthread.php 16 require_once
Warning [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 272 - File: inc/plugins/imeiJalaliDate.php PHP 7.3.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/imeiJalaliDate.php 272 preg_replace
/inc/plugins/imeiJalaliDate.php 185 imeiJGconvert
/inc/class_plugins.php 139 imeiJalaliDate
/inc/functions.php 506 pluginSystem->run_hooks
/global.php 466 my_date
/printthread.php 16 require_once
Warning [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 272 - File: inc/plugins/imeiJalaliDate.php PHP 7.3.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/imeiJalaliDate.php 272 preg_replace
/inc/plugins/imeiJalaliDate.php 210 imeiJGconvert
/inc/class_plugins.php 139 imeiJalaliDate
/inc/functions.php 506 pluginSystem->run_hooks
/global.php 818 my_date
/printthread.php 16 require_once
Warning [2] preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - Line: 272 - File: inc/plugins/imeiJalaliDate.php PHP 7.3.33 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/imeiJalaliDate.php 272 preg_replace
/inc/plugins/imeiJalaliDate.php 210 imeiJGconvert
/inc/class_plugins.php 139 imeiJalaliDate
/inc/functions.php 506 pluginSystem->run_hooks
/printthread.php 150 my_date



تالار گفتمان اسکریپت دات کام
آشنایی با برنامه نویسی آیفون - بخش دوم : چگونگی مدیریت انتخاب سطر در UITableView - نسخه‌ی قابل چاپ

+- تالار گفتمان اسکریپت دات کام (https://forum.xn--mgbguh09aqiwi.com)
+-- انجمن: عمومی (https://forum.xn--mgbguh09aqiwi.com/Forum-%D8%B9%D9%85%D9%88%D9%85%DB%8C)
+--- انجمن: اخبار عمومی و متفرقه (https://forum.xn--mgbguh09aqiwi.com/Forum-%D8%A7%D8%AE%D8%A8%D8%A7%D8%B1-%D8%B9%D9%85%D9%88%D9%85%DB%8C-%D9%88-%D9%85%D8%AA%D9%81%D8%B1%D9%82%D9%87)
+--- موضوع: آشنایی با برنامه نویسی آیفون - بخش دوم : چگونگی مدیریت انتخاب سطر در UITableView (/Thread-%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A2%DB%8C%D9%81%D9%88%D9%86-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-%DA%86%DA%AF%D9%88%D9%86%DA%AF%DB%8C-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D8%B3%D8%B7%D8%B1-%D8%AF%D8%B1-UITableView)



آشنایی با برنامه نویسی آیفون - بخش دوم : چگونگی مدیریت انتخاب سطر در UITableView - 8908183 - 1397/04/16

ضمن عرض سلام و احترام خدمت تمامی کاربران فروم محبوب اسکریپت دات کام


همانطور که قول دادم بهتون ،قصد دارم یکسری مقالات در زمینه برنامه نویسی های مختلف ، برای شما عزیزان قرار دهم . پیشاپیش از تمامی مدیران فروم قدردانی میکنم بابت این فروم بسیار مفید و کاربردی.

چگونگی مدیریت انتخاب سطر در UITableView
اگر شما تا کنون جلسات آموزشی دوره آموزش برنامه نویسی iOS را دنبال کرده باشید، ساخت اپ ساده Table View و سفارشی سازی سلول جدول را فرا گرفته اید. در این جلسه ، بر نمایش داده در یک سطر جدول تمرکز خواهیم کرد. اما ما از کجا بدانیم که چه هنگام ، روی یک سطر جدول ضربه زده می شود؟ این موضوعی است که در این پست به آن خواهیم پرداخت و چگونگی مدیریت انتخاب سطر را نشان خواهیم داد.
ابتدا، بیایید اپ خود و آن چه را که ما می خواهیم اضافه کنیم، ببینید.
[تصویر:  image-20180619164217-17.png]
دو تغییر هست که ما می خواهیم در این آموزش آنها را اعمال کنیم:
  • نمایش یک پیام هشدار زمانی که کاربر روی سطر ضربه می زند.

  • نمایش یک check mark زمانی که کاربر یک سطر را انتخاب می کند.
فهم UITableViewDelegate
هنگامی که شما اولین اپ ساده Table View را ساختید، دو نماینده (UITableViewDelegate, UITableViewDataSource) را در SimpleTableController.h اعلام کردید.
کد:
#import <UIKit/UIKit.h>
 
@interface SimpleTableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
 
@end


همان طور که در آموزش قبلی مطرح کردیم، این دو نماینده به عنوان پروتکل Objective-C شناخته می شوند. شما باید از الزامات تعریف شده در این پروتکلها برای ساخت UITableView پیروی کنید.
آوردن نمایندگان مختلف در برنامه نویسی iOS بسیار متداول است. هر نماینده مسئول یک نقش یا وظیفه خاص برای ساده و تمیز نگه داشتن سیستم می باشد. هر زمان که یک شیء نیاز به انجام کار خاصی دارد، این کار بستگی به مدیریت کردن شیء دیگر دارد. این موضوع به عنوان تفکیک در طراحی سیستمها شناخته می شود.
وقتی به کلاس UITableView نگاه می کنید،  هر نماینده با اهداف مختلفی سروکار دارد. نماینده UITableViewDataSource که ما پیاده سازی کردیم، متدهایی را که برای نمایش داده های جدول استفاده می شوند، تعریف می کند. در سمت دیگر، UITableViewDelegate با ظاهر UITableView سر و کار دارد و هم چنین انتخاب ردیف را انجام می دهد.
واضح است که ما از UITableViewDelegate استفاده خواهیم کرد و متود موردنیاز برای انتخاب سطر را پیاده سازی خواهیم کرد.
مدیریت انتخاب سطر جدول
قبل از این که کد را تغییر دهیم، ممکن است از خود بپرسید:
چگونه می دانیم که چه متدهایی برای اجرا در UITableViewDelegate نیاز داریم؟
شما می توانید همیشه به مرجع برنامه نویسی iOS اپل مراجعه کنید. دو روش برای دستیابی به مستندات وجود دارد. می توانید به مستندات API در وب سایت اپل دسترسی یابید. یا به سادگی در داخل Xcode دنبال آن بگردید. لینک قابل نمایش نیست . لطفا ثبت نام کنید و یا وارد سایت شوید   ، برای مثال، می توانید مستندات API از UITableViewDelegate را بیاورید که کافی است فقط اشاره گر را بر روی نام کلاس برده و “control-command-?” را فشار دهید. شما صفحه پاپ آپ زیر را خواهید دید:
[تصویر:  700-image-20180619164217-18.png]
روی مرجع پروتکل UITableViewDelegate برای نمایش مستند API کلیک کنید.
[تصویر:  700-image-20180619164217-19.png]
اگر این مستند را خوانده باشید، خواهید فهمید که متدهایی که برای مدیریت انتخاب سطر به کار می روند، عبارتند از:
  • tableView:willSelectRowAtIndexPath

  •  tableView:didSelectRowAtIndexPath

هر دوی این متدها برای انتخاب سطر استفاده می شوند. تنها تفاوت آنها در این است که “willSelectRowAtIndexPath” زمانی که یک سطر تعیین شده، انتخاب می شود، فراخوانی می گردد. معمولاً از این متد برای جلوگیری از انتخاب یک سلول خاص استفاده می کنیم. به طور معمول، از متد “didSelectRowAtIndexPath” که بعد از این که کاربر یک سطر را انتخاب می کند، فراخوانی می شود، برای مدیریت انتخاب سطر استفاده می شود و این همان جایی است که کد را برای تعیین انجام عمل مورد نظر در هنگام انتخاب یک سطر، اضافه می کنید.


ادامه دارد...