Согласно библиотеке MarkerCluster GitHub объекту стиля требуется URL , который перезаписывает imagePath .
Решение:
new MarkerClusterer(this.map, this.map_markers, {
styles:[{
url: site_settings.template_directory + '/assets/images/marker-clusterer/m1.png',
textSize: 12,
width: 42,
height: 42,
textColor: 'white'
}],
maxZoom: this.map_max_zoom - 1,
zoomOnClick: true
})
Модальное представление будет охватывать представление, на которое оно помещается, а также навигацию панель для вашего контроллера навигации. Однако, если вы используете подход -presentModalViewController: animated:, то после завершения анимации только что покрытый вид фактически исчезнет, что сделает любую прозрачность вашего модального представления бессмысленной. (Вы можете проверить это, реализовав методы -viewWillDisappear: и -viewDidDisappear: в корневом контроллере представления.)
Вы можете добавить модальное представление непосредственно в иерархию представлений следующим образом:
UIView *modalView =
[[[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
modalView.opaque = NO;
modalView.backgroundColor =
[[UIColor blackColor] colorWithAlphaComponent:0.5f];
UILabel *label = [[[UILabel alloc] init] autorelease];
label.text = @"Modal View";
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor clearColor];
label.opaque = NO;
[label sizeToFit];
[label setCenter:CGPointMake(modalView.frame.size.width / 2,
modalView.frame.size.height / 2)];
[modalView addSubview:label];
[self.view addSubview:modalView];
Добавление модального представления в качестве подпредставления к такое корневое представление на самом деле не будет закрывать панель навигации, но будет охватывать все представление под ним. Я попытался поиграть с происхождением кадра, используемого для запуска modalView, но отрицательные значения заставляют его не отображаться. Лучший способ, который я нашел для покрытия всего экрана, помимо строки состояния, - это добавить modalView в качестве подвида самого окна:
TransparentModalViewAppDelegate *delegate = (TransparentModalViewAppDelegate *)[UIApplication sharedApplication].delegate;
[delegate.window addSubview:modalView];
Проще всего добиться этого, установив «OverlayViewController», который находится над всеми другими подпредставлениями моего окна или корневого представления. Настройте это в делегате приложения или в контроллере корневого представления и сделайте OverlayViewController синглтоном, чтобы к нему можно было получить доступ из любого места в вашем коде или иерархии контроллеров представления. Затем вы можете вызывать методы для отображения модальных представлений, индикаторов активности и т. Д., Когда вам нужно, и они потенциально могут покрывать любые панели вкладок или контроллеры навигации.
Пример кода для корневого контроллера представления:
- (void)viewDidLoad {
OverlayViewController *o = [OverlayViewController sharedOverlayViewController];
[self.view addSubview:o.view];
}
Пример кода, который вы могли бы используйте для отображения вашего модального представления:
[[OverlayViewController sharedOverlayViewController] presentModalViewController:myModalViewController animated:YES];
Я фактически не использовал -presentModalViewController: animated:
с моим OverlayViewController, но я ожидаю, что это будет работать нормально.
См. также: Как выглядит ваш синглтон Objective-C?
Этот пост о отображения полупрозрачного представления «Загрузка ...» может дать несколько советов о том, как действовать дальше.
V-модель широко используется в моей компании. Я должен добавить, что, IMHO, там есть лучшие модели развития, но V-Model все еще может эффективно использоваться при разработке крупномасштабных систем, где вы НЕ используете итеративное развитие.
Тем не менее, я думаю, что управляемая тестами разработка все еще может быть применена к V-Model, как часть фазы тестирования блока и даже на фазе интеграционного тестирования , пока вы можете автоматизировать это как часть цикла разработки.
V-Model, однако, рассматривает тестирование системы как испытание, которое происходит после разработки продукта считается завершенным, поэтому управляемая тестом разработка не применяется. Убедитесь, что вы можете автоматизировать его с помощью инструментов, сценариев или программ, но вы больше не разрабатываете свой код. В системных тестах вы больше не заботитесь о коде, только о спецификациях. Это происходит потому, что единицы тестирования могут быть неполными.
Наконец, принятие пользователем в V-Model, не должно быть полностью автоматизировано, потому что это когда конечный пользователь смотрит на систему и решает, соответствует ли она требованиям или нет. и в случае, скажем так, пакетных систем, будет поставка данных, но сценарий никоим образом не должен определять успех этого этапа.
Но давайте вернемся к вопросу. Я только что сказал, что TDD и автоматизация могут использоваться в качестве реализации этапов тестирования в V-Model. Таким образом, если вы можете использовать V-Model тестирование с Agile разработки, как вы видели презентация подтвердил, то я могу также использовать TDD и методы автоматизации.
Однако я не уверен, что вы захотите. Я не знаю, как можно применить V-модель к Agile или будет ли она когерентной, поскольку V-модель не является гибкой .
-121--3653538- Внутри цикла используется один и тот же экземпляр объекта Тэгов
, поэтому каждое обновление TagName
выполняется по одной и той же ссылке. Переместите объявление внутрь цикла, чтобы получить новый объект на каждом проходе цикла:
foreach (string t in tagList)
{
Tag _tag = new Tag(); // create new instance for every iteration
_tag.tagName = t;
tags.Add(_tag);
}
Для бонусной части - при изменении Тэга
с класса
на структуру
операции копирования (это происходит при вызове tags.Add (_ тэг)
) копирует целый экземпляр (по существу, создавая новый) в отличие от исходного класса
, когда только ссылка на один и тот же экземпляр копируется в параметр вызова, а затем в элемент списка (см. C # pass by value vs. pass by reference для пояснения того, как struct
передается вызовам метода).
Эффект прозрачного/полупрозрачного режима просмотра можно получить, наложив прозрачную/полупрозрачную кнопку как на вид, так и на панель навигации.
Доступ к панели навигации осуществляется через свойство navigationBar контроллера UINavigationController.
Я обнаружил, что UIButton в отличие от UILabel будет ловить события мыши - следовательно, давая правильное модальное поведение.
Я наконец-то добился этого для интерфейса навигации или панели вкладок, объединив контроллер представления наложения (см. Ответ pix0r), который скрывается / не скрывается перед скрытием или отображением контроллера представления на основе этого очень хорошего блога сообщение .
Что касается контроллера представления, совет состоит в том, чтобы сделать его фоновое представление clearColor
, тогда полупрозрачное перекрывающееся представление станет видимым, и любые представления, добавленные в качестве подпредставлений в контроллере представления, будут впереди и наиболее главное непрозрачный.