2015-01-12 2 views
-2

Я хочу создать черный UIView с прозрачными кругами.Создание прозрачных кругов в iO

Я думаю о создании одного вида (с черным цветом и прозрачностью 50%), и добавить в него несколько кругов, но я не знаю, как установить прозрачность для каждого. Я знаю, как создать круг View (пример: how to draw a custom uiview that is just a circle iphone-app).

Я хочу сделать что-то вроде iShowcase library, но с несколькими точками:

enter image description here

Любой ключ? Благодарю.

решаемые

Я посмотрел на код iShowcase library и я решил свою probblem. теперь я работаю в библиотеке, основанной в iShowcase library. Я выложу здесь, когда закончим.

ответ

1

Используйте альфа для вашего круга. Как и в вашем примере ссылку, а затем добавить подвидов в yourmainview:

UIView *circleView = [[UIView alloc] initWithFrame:CGRectMake(10,20,100,100)]; 
    circleView.alpha = 0.5; 
    circleView.layer.cornerRadius = 50; 
    circleView.backgroundColor = [UIColor whiteColor]; 
    [yourmainview addSubview: circleView]; 

Btw в вашей картине я думаю, белые кружки имеют 100% альфа. Вы можете использовать индивидуальную альфу для каждого круга или использовать рандомизатор:

Что касается обновленного примера, почему бы вам не добавить больше кнопок и витрины в свой h-файл, синтезировать их и использовать несколько экземпляров ... showcase setupShowcaseForTarget : btn_custom_1 title: @ "title" details: @ "other"]; ? Я думаю, вам следует изменить основные классы, потому что вы хотите, чтобы разные контейнеры отображали несколько просмотров [круги].

Использование измененного iShowcase.m [- (void) calculateRegion] и различные представления как контейнеры, я смог сделать что-то вроде: http://tinypic.com/view.php?pic=2iwao6&s=8#.VLPTRqYsRE8 Итак, ответ: использование пользовательских представлений для нескольких витрин [ex [showcase2 setContainerView: self .view2];], затем пользовательский кадр для каждой витрины [showcase2.frame = CGRectMake (0,0,100,100);] Я не нахожу время для точной настройки примера, но да, вы можете достичь желаемого результата ...

+0

Я думаю, что я не объяснить мои себя правильно, я буду обновлять мой вопрос. –

+0

Я обновляю его https://github.com/rahuliyer95/iShowcase Я хочу что-то вроде этого, но с несколькими кругами и текстом. –

0

Простенько, что вы можете сделать, это иметь ваш основной вид (черный 50% прозрачный) и добавлять фигуры к слою маски.

Так в основном:

//Set up your main view. 
UIView* mainView = [UIView new]; 
mainView.backgroundColor = [UIColor blackColor]; 
mainView.alpha = 0.5; 

UIView* circle1 = [YourCircleClassHere new]; 
UIView* circle2 = [YourCircleClassHere new]; 
UIView* circle3 = [YourCircleClassHere new]; 

UIView* container = [UIView new]; 

[UIView addSubview:circle1]; 
[UIView addSubview:circle2]; 
[UIView addSubview:circle3]; 

//Make a new layer to put images in to mask out 
CALayer* maskLayer = [CALAyer layer]; 
//Assign the mask view to the contents layer. 
maskLayer.contents = (id)container; 
//This will set the mask layer to the top left corner. 
maskLayer.frame = CGRectMake(0,0,container.frame.size.width,container.frame.size.height); 
//Lastly you assign the layer to the mask layer of the main view. 
mainView.layer.mask = maskLayer; 
//Applies basically the same as clipToBounds, but a bit reversed.. 
mainView.layer.mask = true/false; 

На: заметка на полях

Я достиг этого с изображениями "содержание = (ID) [UIImage CGImage]", но я уверен, что он должен работать с UIViews как Что ж.

ум Также некоторые ошибки, так как я просто писал от моего ума, и я не проверить это .. Так держать меня в курсе, если он работает /! Работает^_^

Смежные вопросы