Как сделать круговой UIView

Единственной вещью, которую я осуществляю для пребывания в 80 символах, является мой комментарий.

Лично... Я посвящаю всю свою интеллектуальную мощь (что мало существует) к кодированию права, это - боль для возвращения, и разбиться все в 80 символах ограничивает, когда я мог проводить свое время на следующей функции. Да, Resharper мог сделать это для меня, я предполагаю, но тогда это волнует меня немного, что сторонний продукт принимает решения о моем размещении кода и изменяет его ("Не повреждайте мой код в два HAL строк. HAL?").

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

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

52
задан awesome_sauce911 27 July 2014 в 02:22
поделиться

2 ответа

Я могу хотя бы показать вы ярлык для рисования кругов произвольного размера. Не требуется ни OpenGL, ни отрисовка Core Graphics.

Импортируйте структуру QuartzCore, чтобы получить доступ к свойству .cornerRadius вашего UIView или UIImageView.

#import <QuartzCore/QuartzCore.h>

Также вручную добавьте его в папку Frameworks вашего проекта.

Добавьте этот метод в свой контроллер представления или куда-нибудь еще:

-(void)setRoundedView:(UIImageView *)roundedView toDiameter:(float)newSize;
{
    CGPoint saveCenter = roundedView.center;
    CGRect newFrame = CGRectMake(roundedView.frame.origin.x, roundedView.frame.origin.y, newSize, newSize);
    roundedView.frame = newFrame;
    roundedView.layer.cornerRadius = newSize / 2.0;
    roundedView.center = saveCenter;
}

Чтобы использовать его, просто передайте ему UIImageView и диаметр. В этом примере предполагается, что у вас есть UIImageView с именем «circ», добавленный в качестве подпредставления в ваше представление . У него должен быть установлен backgroundColor , чтобы вы могли его видеть.

circ.clipsToBounds = YES;
[self setRoundedView:circ toDiameter:100.0];

Это просто обрабатывает UIImageViews , но вы можете обобщить его на любой UIView .

ПРИМЕЧАНИЕ. : Начиная с iOS 7 для clipToBounds необходимо ДА.

106
ответ дан 7 November 2019 в 08:59
поделиться

Вам нужно создать прозрачный UIView (альфа-цвет фона 0), а затем в его drawRect: нарисовать круг с помощью вызовов CoreGraphics. Вы также можете отредактировать слой представления и присвоить ему угловой радиус.

3
ответ дан 7 November 2019 в 08:59
поделиться
Другие вопросы по тегам:

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