如何通過runtime修改系統類的一個property屬性的初始值? 財富值26?
情況如下:
我們工程的主頁是一個很長的tableView列表,想要實現<愛尬聊_頭條百科>點擊頂部tableView自動滑至坐標原點處,系統的UIScrollView已經實現了這個功能,只要scrollingToTop這個屬性是YES就可以了。然而!當這個頁面的scrollView大于1個,同時這個屬性值又都是YES(或者說同一頁面下的這一屬性值為YES的個數大于1)時,這個點擊頂部的事件就可以觸發,否則不觸發(理由是系統不知道把哪個scrollView的位移調回原點)。
理論上講,如果scrollView.scrollingToTop的這個值的默認值是NO的話,我只需要把我需要實現跳轉置頂功能的scrollView實例的這一屬性設為YES就可以了, 然而坑爹的是:這個屬性的默認值就是YES!
所以鄙人打算通過runtime把這個屬性的默認值設為NO,這樣這個問題就可以迎刃而解了!以后工程主頁中在遇到相同的問題, 也可以解決了!
在這里我想補充解釋一下,為什么不手動把其他的scrollview實例的scrollingToTop這個屬性設為NO,理論上講這樣也可以實現同樣的效果:
因為現實是殘酷的,大多數工程都會是這樣一種架構,簡單舉例就是,主頁的三個TabBar關聯的三個頁面其實是捆綁在一個大的ScrollView容器中(橫向),而每一個tab的頁面中嵌套著多個小的scrollView,有一些封裝好的小視圖中的父類是scrollView,而他們的名字中并沒有體現出scrollView,所以基于以上種種實際情況,一個個的找出所有無關的scrollView及其子類,并把它們的那個屬性寫成no的難度要遠遠高于使用runtime。
綜上所述,求大神支招,如何通過runtime修改系統類的一個property屬性的初始值?
