Отобразить представление серым в iPhone, как?

Я не вижу технических оснований, почему

struct type {
    static const double value = 3.14;
};

запрещается. Любой случай, который Вы находите, где он работает, происходит из-за определенных функций непортативной реализации. Они также, кажется, имеют только ограниченное применение. Для интегральных констант, инициализированных в определениях классов, можно использовать их и передать их шаблонам как неаргументы типа и использовать их в качестве размера измерений массива. Но Вы не можете сделать так для констант с плавающей точкой. Разрешение шаблонных параметров с плавающей точкой принесло бы свой собственный ряд правил, не действительно стоящий проблемы.

, Тем не менее, следующая версия C++ признает что использование constexpr:

struct type {
    static constexpr double value = 3.14;
    static constexpr double value_as_function() { return 3.14; }
};

И сделает type::value константное выражение. Тем временем Ваш лучший выбор состоит в том, чтобы следовать за шаблоном, также используемым std::numeric_limits:

struct type {
    static double value() { return 3.14; }
};

Это не возвратит константное выражение (значение не известно во время компиляции), но который только имеет значение теоретический, с тех пор практичный, значение будет встроено так или иначе. Посмотрите предложение constexpr . Это содержит

4.4

Floating-point constant expressions

Традиционно, оценка fl константное выражение oating-точки во время компиляции является щекотливым вопросом. Для однородности и общности, мы предлагаем позволить данные константного выражения fl oating типы точки, инициализированные с любым fl oating-указать на константные выражения. Это также увеличит совместимость с C99 [ISO99, В§6.6], который позволяет

[#5] выражение, которое оценивает к константе, требуется в нескольких контекстах. Если fl oating выражение будет оценен в переводе envi-ronment, арифметическая точность и диапазон должны быть, по крайней мере, как большие, как будто выражение оценивалось в выполнении, окружают - ment.

7
задан Denis Masyukov 16 September 2009 в 04:55
поделиться

1 ответ

Я получаю хорошие результаты, используя метод, который вы уже опробовали. может быть, возиться с альфой - хорошая идея?

mask = [[UIView alloc] initWithFrame:window.frame];
[mask setBackgroundColor:[UIColor colorWithWhite:0.0 alpha:0.78]];
[self.view addSubview:mask];

Затем в дальнейшем в коде вы можете удалить его:

[mask removeFromSuperview];
or
[mask setHidden:YES];

Если вы хотите сделать его еще лучше, я полагаю, вы могли бы попробовать использовать градиент, программно или как изображение, и использовать это для затемнения краев экрана, чтобы контент, который вы показываете на переднем плане, казался источником света.

10
ответ дан 7 December 2019 в 01:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: