Проблеми с превръщането на UIImageView в непрозрачен на iPhone

Правенето на възможно най-малко алфа смесване е важно съображение за ефективността на клетките за изглед на таблица на iPhone. Имам клетки от таблица, които до голяма степен се състоят от един голям изглед на изображение. Зададох UIImageView да бъде непрозрачен както в Interface Builder, така и програмно, но инструментът CoreAnimation все още показва, че е алфа-смесен.

Има ли начин да направя UIImageViews действително непрозрачни или ще трябва да направя персонализирано чертане, за да предпазя от смесване?


person qwzybug    schedule 14.08.2009    source източник
comment
Какъв вид изображение зареждате във вашия изглед? Ако е PNG или друг формат с алфа поддръжка, Core Animation може да смесва изгледа поради изображението си.   -  person Tim    schedule 14.08.2009
comment
Това е PNG изображение (препоръчителен формат за изображение на iPhone, IIRC), но няма прозрачни пиксели.   -  person qwzybug    schedule 15.08.2009
comment
Те алфа смесват действителния изглед или съдържанието на изгледа? Някоя от опциите в инспектора позволява ли ви да зададете фона, цвета или стила да бъдат непрозрачни? Това свойство ли можете да зададете по време на изпълнение?   -  person TheJacobTaylor    schedule 18.08.2009
comment
Съжалявам, подобрих въпроса, защото не питате как да направите нещата прозрачни, имате проблем със свойството за непрозрачност, което не работи както трябва   -  person Brock Woolf    schedule 06.09.2009
comment
Правя рисунки по поръчка. изпитах същия проблем и не успях да го поправя, без да прибягна до drawRect   -  person CornPuff    schedule 16.01.2010
comment
Като оставим настрана зададения въпрос за момент, срещате ли действителни проблеми с производителността? Тоест използвам алфа-смесени изгледи в клетките на таблицата си през цялото време и това протича доста гладко. Всъщност имам няколко приложения, в които самата клетка е прозрачна (така че фонът на таблицата се вижда), без проблеми, дори на по-стар (3G) хардуер. Просто предлагам да не полагате твърде много усилия за решаването на нещо, ако то наистина не е проблем за вас.   -  person Olie    schedule 15.06.2011
comment
Настройвате ли действителните си клетки да бъдат прозрачни в -willDisplayCell?   -  person Keller    schedule 06.07.2011
comment
Изображението има ли алфа канал? Дори и да няма прозрачни пиксели, има голяма вероятност да присъства алфа канал. Опитайте да го премахнете.   -  person Greg    schedule 09.07.2011


Отговори (2)


Вероятно вашето изображение съдържа алфа канал. Въпреки че изображението е непрозрачно, iOS все още го третира като полупрозрачно. Опитайте да премахнете този алфа канал с помощта на Photoshop, като отидете на: Layer > Background From Layer

person Louis Nguyen    schedule 20.03.2012

person    schedule
comment

Не разбирам защо получавам грешка с che const в края на моя метод. Методът print не променя нито един член на класа, нали?

class Hello{

public:
   int get_member() {return member_;};
   void print() const {
       cout<<get_member()<<endl; 
   };

private:
   int member_;

 };

Съобщението за грешка е: грешка при предаване на "const Hello" като "this" аргумент на 'int Hello:: get_member()' отхвърля квалификатори [-fpermissive]

- person Berik; 19.04.2013