cocostudio學習(UIScrollView控件内部子控件的可視化問題)
本文内容也是本人學習過程中與COCOSTUDIO開發高手Nutty的對話記錄.
googleman 10:57:07
Nutty先生好!按照您的指導,在使用UIScrollView時,先盡量避免使用内部子控件的删除/移動/添等操作.于是,在強調使用者選擇的是其中内部哪一個子項時我使用了在其前面顯示一個'框'(UIImageView)的方法.
于是,在初期,僅有一個框框出預設選擇的内部子項(也是UIImageView).當點選其它的子項時,把隐藏的框設定為可見. 試驗中,看到這樣的方案基本OK;但是,當拖動UIScrollView内部的各項時,發現所有的先前被隐藏的'框'(自然是有好多個的)都顯示出來.
請問:這是怎麼回事?
另外:我發現在UI編輯器中設定内部子控件為不可見是不起作用的(我使用的是最新版本--v2.1.4e),但這可以通過手式方式設定不可見實作,無大障礙.
googleman 10:59:07
是不是還需要手式設定類似于下面的事件:
scroll_1->addScrollToRightEvent(this,coco_ScrollToRightSelector(SetupScene::onRightScroll));
然後再在上述事件中進行手工屏蔽? 請教了.
Nutty 11:02:39
哦 我知道了 scrollview會對子節點做一個隐藏和顯示的處理
你的子項和框是否同級被添加到scrollview中?
googleman 11:03:33
是的,但是沒有先一起放到一個PANEL中,而是直接放到這個SCROLLVIEW中的
Nutty 11:04:22
建議做法是 panel->addChild(子項);panel->addChild(框) 然後把panel作為scrollview裡的每一個子節點 然後去調用 框->setVisible()
後面會修複這個問題 不過目前按照上述做法是可以解決問題的
googleman 11:05:03
OK,看到例子中大都如此,我試試,先謝謝了
Nutty 11:06:52
嗯 好的 不客氣