WebHU - Programozási kérdések és válaszok

Milyen alapvető grafikai technikákat ajánlunk nagyon egyedi UITableViewCell-ek rajzolásához

ide írja be a kép leírását

Hé srácok. Érdekelne néhány kulcsfontosságú pont az ehhez hasonló alapgrafikákban való megrajzolásával kapcsolatban.

Mikor használjak több réteget? Tudom, hogy vágógörbét használhatok a sarkok lekerekítésére, és ha jól tudom, úgy hangzik, hogy ez hatékonyabb, mint egy szegélysugár elhelyezése a CALayeren.

Használható az UIImageView kimenete a drawRectben? Tudom, hogy valójában nem tudja használni a nézetet, de sok helyen láttam, hogy az UIImageView sokkal hatékonyabb a képek rajzolására, mint a rajzolásra. egyenesen rajzoltRect. Ott ki lehet őket valahogy kihasználni, vagy csak fel kell szívni és használni a CG-t?

Szívesen fogadunk minden egyéb tippet, trükköt és forrást egy ilyen cella megrajzolásának legjobb módjához, hogy minél magasabb FPS-arányt érjünk el.

01.02.2013

Válaszok:


1
  1. Probléma most a teljesítménnyel? Tartózkodnék az "optimalizálástól", amíg nem észlel késést, és nem biztos abban, hogy a "lassú" rajzolástól.

  2. Ha még nem kezdte el, akkor kövesse az alapvető/egyszerű megközelítést. Valószínűleg elég gyors lesz az új iOS-eszközökön.

  3. Csak rajzolja meg a képet a DrawRect-ben, ne csináljon semmi különöset.

A PaintCode segíthet? Az Ön tervezése alapján Core Graphics kódot ad ki.

01.02.2013

2

Mikor érdemes több réteget használni?

Sajnos a válasz: amikor csak szükséges. A rétegek olcsók, és minden bizonnyal könnyebbek, mint az UIView/UIImageView, de nem is részei a hagyományos iOS válaszadási láncnak (annyiban, hogy nem tudják közvetlenül fogadni/közvetíteni az érintéseket), de ezt általában maga a cella kezeli helyetted. Az Apple javasolja, hogy kerülje el -drawRect: a megosztottság javára Nézze meg a hierarchiát a tisztaság kedvéért, de ez nem jelenti azt, hogy más nézetet kell készítenie a háttérhez.

Használható az UIImageView kimenete a drawRectben?

Ha problémái vannak az FPS-sel, jó ötlet elkülöníteni, honnan származik, mielőtt optimalizálná azokat a dolgokat, amelyek esetleg nem jelentenek problémát. Először a képet vizsgálnám meg: végez valamilyen gyorsítótárat, vagy a táblázatnézet cellának minden egyes alkalommal újra kell rajzolnia, amikor a -drawRect: meghívásra kerül? Az UIImageView-nak végre kell hajtania a képen bármilyen átméretezést/méretezést/kitömörítést? Ha igen, gondolt-e arra, hogy egyszer átméretezze a képet, majd az eredményt bittérképes kontextusba mentse, amelyet egyszerűen kihúz egy tömbből, és rajzol, ahelyett, hogy az UIImageView-nak elpazarolja az időt, hogy megcsinálja helyette?

Amíg a másik kérdésed le van zárva, az animációval is foglalkozom

A táblázatcella hátterének animálása triviális, különösen akkor, ha a cella a Core Graphics programban rajzolja meg a hátterét, nem pedig CALayert (ami azt jelenti, hogy a CABasicAnimation segítségével animálhat egy háttérszínre, illetve háttérszínről a részletesen itt). Különösen tetszik a A TwUI animációs mechanizmusa a kiválasztott állapotváltozásokhoz, mert ez nagyon egyszerű:

  1. Indítson el egy animációs környezetet.
  2. Legyen egy metódusa, amely meghívja a -setNeedsDisplay-t, vagy elvégzi az animált extra munkát.
  3. Készítse el az animációkat.
01.02.2013
  • Köszönöm a részletes választ. Nagyra értékeljük. 02.02.2013
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..