2015-05-18 2 views
0

Я хочу обрезать часть элемента управления представлением в полукруг, чтобы наблюдательный элемент за ним был видимым через обрезанную часть. Есть ли способ сделать это, используя объектив-c или любой пользовательский элемент управления, уже доступный.Обрезать часть viewcontroller

  1. TableviewContoller с 10 клетками

  2. ImageWiderContoller с большого изображения и другие элементы управления

Первая ячейка таблицы должна иметь полукруг, через который ImageWiderContoller (который является ниже TableviewContoller) должно быть видимым . Таким образом, для прокрутки влево на столе должно отображаться изображениеWiderController

+0

[Мой ответ здесь] (http://stackoverflow.com/questions/9711248/cut-transparent-hole-in-uiview/15810658#15810658) - это, вероятно, то, что вы ищете – Lefteris

+0

ViewController, на котором другой viewController выдвинутые или представленные не могут быть замечены в предыдущем. Чтобы проверить, просто ли установить отображаемый фон представления viewController. – ZeMoon

+2

Это неправда @ZeMoon, потому что, если ViewController представлен в виде модально, вы можете установить 'UIModalPresentationStyle' в' OverCurrentContext', и будет показано предыдущее представление ViewController – Lefteris

ответ

1

Только так я думаю о том, что у него есть обычай UIView, и установите это по умолчанию для своего самого верхнего UIViewController. Внутри этого метода UIView'sdrawRect() вы можете рисовать любые фигуры, которые вы хотите (прозрачные включены). Как, если вы хотите, чтобы нарисовать прозрачный круг в середине вашего контроллера, вы могли бы сделать это в drawRect() вашего UIView:

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    [[UIColor orangeColor] setFill]; //background Fill 
    CGContextFillRect(context, self.bounds); 

    [[UIColor clearColor] setFill]; //circle Fill. 
    CGContextFillEllipseInRect(context, (CGRect){self.center.x - 25.0f, self.center.y - 25.0f, 50.0f, 50.0f}); 
} 

В initWithFrame: одного и того же UIView добавить следующее:

[self setBackgroundColor:[UIColor clearColor]]; 

PS: Как упоминалось @Lefteris Очевидно, установите UIViewControllerUIModalPresentationStyle в OverCurrentContext, чтобы он отображался поверх того же контроллера.

Примечание: прозрачным я имел в виду область верхнего контроллера, которая отображает содержимое контроллера внизу, как вы хотели.

+0

Благодарим вас за ответ @ Сабир Али. Я отредактировал свой вопрос, чтобы объяснить свою настоящую потребность. – Manoj

+1

Вы можете использовать тот же 'drawRec:' evaluationoch, настраивая класс UITableViewCell и помещая здесь функцию drawRect:. Затем вы можете использовать этот настроенный 'UITableViewCell' для первой ячейки вашей таблицы и ячейки по умолчанию для остальных. Учитывая ваш обновленный вопрос, он должен работать нормально. (PS: если я все еще ошибаюсь, поделитесь макетом желаемой настройки, и я буду рад помочь) –

+0

Точно такая же идея, что я реализовал, но я искал что-то другое. Но я бы дал вам один ответ на ваш ответ. – Manoj

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