溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

cocostudio學(xué)習(xí)之有關(guān)UIScrollView控件的一個(gè)問(wèn)題

發(fā)布時(shí)間:2020-07-25 21:11:28 來(lái)源:網(wǎng)絡(luò) 閱讀:490 作者:googlingman 欄目:開(kāi)發(fā)技術(shù)

我現(xiàn)在有一個(gè)場(chǎng)景,使用UI編輯器創(chuàng)建而成,其中包含三個(gè)UIScrollView控件。第一個(gè)UIScrollView控件中包含大約12個(gè)子控件 UIImageView,第二個(gè)UIScrollView控件中包含大約16個(gè)子控件UIImageView,第三個(gè)UIScrollView控件中包含 大約32個(gè)子控件UIImageView。上述每一個(gè)UIScrollView控件內(nèi)部的子控件UIImageView根據(jù)需要進(jìn)行覆蓋顯示。對(duì)于前面兩 個(gè)內(nèi)容較少的UIScrollView控件,操作正常。對(duì)于第三個(gè)UIScrollView控件則顯示不正常。我左右拖動(dòng)其中的子控件時(shí)出現(xiàn)顯示亂套現(xiàn) 象。例如,我使用如下代碼:

  UIImageView* currentDesk = dynamic_cast<UIImageView*>(pObject);
    UIScrollView* scroll_3 = dynamic_cast<UIScrollView*>(currentDesk->getWidgetParent());
    UIImageView* desk_mask = dynamic_cast<UIImageView*>(scroll_3->getChildByName("desk_mask"));
    CCPoint pos=currentDesk->getPosition();
    desk_mask->setPosition(pos);

實(shí)現(xiàn):當(dāng)點(diǎn)擊其中某一幅圖片時(shí),有一個(gè)已經(jīng)添加到上述UIImageView控件中的方框圖片控件(其默認(rèn)位置置于第一個(gè)圖片之上)會(huì)置于其上,以顯示用戶當(dāng)前選擇的是這一幅圖片。
我感覺(jué)上述思路沒(méi)有什么不正常的。另外,在圖片相應(yīng)的點(diǎn)擊事件中,除了顯示上述方框圖片控件外還有其他的代碼需要執(zhí)行(暫時(shí)被我屏蔽了)。
執(zhí)行上述代碼,對(duì)于兩個(gè)內(nèi)容少的UIScrollView控件一切正常,但對(duì)于最后一個(gè)內(nèi)容較多的UIScrollView控件,即顯示亂套矣!

對(duì)于問(wèn)題http://bbs.cocostudio.org/forum. ... 6509&extra=page%3D1,似乎pipu先生也沒(méi)有給予更多更細(xì)致的解釋。

特別請(qǐng)教上述問(wèn)題,謝謝了。

回答:

問(wèn)題是這樣的 目前scrollview有個(gè)缺陷 如果是子控件添加進(jìn)scrollview后 又對(duì)子控件的position進(jìn)行了操作 就會(huì)導(dǎo)致scrollview滾動(dòng)不正常問(wèn)題,因?yàn)閟crollview在addchild時(shí)會(huì)根據(jù)子節(jié)點(diǎn)的位置信息做一些scrollview屬性的處理,這個(gè)問(wèn)題后面會(huì)優(yōu)化 目前的使用方式建議是在scrollview addchild之前設(shè)置好子節(jié)點(diǎn)的位置 add完畢后就不要對(duì)子節(jié)點(diǎn)的位置進(jìn)行操作了。
謝謝!但是,我的scrollview中有N幅圖片,想實(shí)現(xiàn)玩家點(diǎn)擊一幅圖片時(shí),上面蓋一個(gè)“框”,那么這個(gè)框?qū)?yīng)的p_w_picpath控件目前只好先放到整個(gè)scrollview控件的外面(上面),是不是?


最好就是“框”是個(gè)p_w_picpathview 圖片是個(gè)p_w_picpathview 兩個(gè)p_w_picpathview添加到一個(gè)panel中 框先設(shè)置為不可見(jiàn) 把這個(gè)panel當(dāng)作scrollview中的單元子幾點(diǎn)放到scrollview中
點(diǎn)擊圖片的時(shí)候把框顯示出來(lái)。

或者,您是不是說(shuō),只要不修改內(nèi)部控件的位置,把其中IMAGE控件的某些其他屬性修改一個(gè)(目的是為了顯式指出玩家選擇的是它),這樣是可以的?



是的 除了位置屬性 其他所有屬性都可以設(shè)置 visible scale rotation等

非常感謝!我試試!


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI