百科狗-知识改变命运!
--

为什么UITableViewController不执行UITableView的代理方法

乐乐1年前 (2023-12-05)阅读数 5#综合百科
文章标签它的时候

为什么UITableViewController不执行UITableView的代理方法

就拿UITableView来说。将一个controller设置为它的代理。UITableView在绘制表的时候并不知道要绘制几个section和几个row。这个时候他就会向它的代理询问这些信息。这个时候在controller中的代理方法就会被执行。告诉UITableView去怎样的绘制。在绘制每个CELL的时候,UITableView也不知道应该怎样去绘制,这个时候它会去询问他的代理。代理方法再告诉它去绘制一个怎样的cell。也就是说代理方法是在View需要一些信息的时候在它的delegate中被执行的。这样主要是为了MVC的设计结构。就说tableView的dataSource代理中的,numberOfSectionsInTableView等代理函数,在转屏的时候肯定内部会调用,而在tableView的frame发生改变的时候,也对被调用。在Xcode中调试可以查看堆栈调用顺序:第一次初始化:#00x0000a0b2in-[ViewControllernumberOfSectionsInTableView:]at*******/ViewController.m:95#10x319742d0in-[UITableViewRowData(UITableViewRowDataPrivate)_updateNumSections]()#20x3197421cin-[UITableViewRowDatainvalidateAllSections]()#30x31988a48in-[UITableView(_UITableViewPrivate)_updateRowData]()#40x319888dain-[UITableViewnoteNumberOfRowsChanged]()#50x319884f8in-[UITableViewreloadData]()#60x3198671ain-[UITableViewlayoutSubviews]()#70x3194280ain-[UIView(CALayerDelegate)layoutSublayersOfLayer:]()#80x335a5d62in-[CALayerlayoutSublayers]()#90x335a5900inCA::Layer::layout_if_needed(CA::Transaction*)()#100x335d47a6in-[CALayerlayoutIfNeeded]()#110x319ec0d0in-[UIViewControllerwindow:setupWithInterfaceOrientation:]()#120x319eb2bcin-[UIWindow_setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:]()#130x319ea48ein-[UIWindow_setRotatableClient:toOrientation:updateStatusBar:duration:force:]()#140x319ea418in-[UIWindow_setRotatableViewOrientation:duration:force:]()#150x31b20180in__57-[UIWindow_updateToInterfaceOrientation:duration:force:]_block_invoke_0()#160x319a8680in-[UIWindow_updateToInterfaceOrientation:duration:force:]()#170x319a83c4in-[UIWindowsetAutorotates:forceUpdateInterfaceOrientation:]()#180x319a7d32in-[UIViewController_tryBecomeRootViewControllerInWindow:]()#190x3199eeaain-[UIWindowaddRootViewControllerViewIfPossible]()#200x3199aaecin-[UIWindow_setHidden:forced:]()#210x319dc1d0in-[UIWindowmakeKeyAndVisible]()#220x00009c36in-[AppDelegateapplication:didFinishLaunchingWithOptions:]()转屏调用堆栈:#00x0000a0b2in-[ViewControllernumberOfSectionsInTableView:]at*****/ViewController.m:95#10x319742d0in-[UITableViewRowData(UITableViewRowDataPrivate)_updateNumSections]()#20x3197421cin-[UITableViewRowDatainvalidateAllSections]()#30x319a9504in-[UITableViewsetFrame:]()#40x319a29d0in-[UIView(Geometry)_applyAutoresizingMaskWithOldSuperviewSize:]()#50x319a273ain-[UIView(Geometry)_resizeWithOldSuperviewSize:]()#60x31b2bb2ein-[UIScrollView_resizeWithOldSuperviewSize:]()#70x34b9baeein__NSArrayChunkIterate()#80x34b94a78in__NSArrayEnumerate()#90x34af6b6ain-[NSArrayenumerateObjectsWithOptions:usingBlock:]()#100x3195b0aain-[UIView(Geometry)resizeSubviewsWithOldSize:]()#110x319a34bain-[UIView(Geometry)setBounds:]()#120x31acad94in-[UIViewControllerwindow:willAnimateRotationToInterfaceOrientation:duration:]()#130x319eb2bcin-[UIWindow_setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:]()#140x319ea48ein-[UIWindow_setRotatableClient:toOrientation:updateStatusBar:duration:force:]()#150x319ea418in-[UIWindow_setRotatableViewOrientation:duration:force:]()#160x31b20180in__57-[UIWindow_updateToInterfaceOrientation:duration:force:]_block_invoke_0()#170x319a8680in-[UIWindow_updateToInterfaceOrientation:duration:force:]()#180x319b1d2cin-[UIWindow_updateInterfaceOrientationFromDeviceOrientation:]()重新设置frame等:#00x0000a0b2in-[ViewControllernumberOfSectionsInTableView:]at***/ViewController.m:95#10x319742d0in-[UITableViewRowData(UITableViewRowDataPrivate)_updateNumSections]()#20x3197421cin-[UITableViewRowDatainvalidateAllSections]()#30x319a9504in-[UITableViewsetFrame:]()

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)