Как сделать круговой UIView
Я хочу сделать UIView или UIImageView, который является кругом. Или круг, который я могу изменить размер с помощью ползунка и цвет с помощью pickerview.
6 ответов:
Я могу по крайней мере показать вам ярлык для рисования окружностей произвольного размера. Нет OpenGL, не требуется основной графический рисунок.
импортировать фреймворк QuartzCore, чтобы получить доступ к .cornerRadius свойство вашего UIView или UIImageView.
#import <QuartzCore/QuartzCore.h>
также вручную добавьте его в папку фреймворков вашего проекта.
добавьте этот метод в свой контроллер вида или там, где вам это нужно:
-(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", добавленный в качестве подвида к вашему view. Он должен иметь backgroundColor установите так, чтобы вы могли видеть его.
circ.clipsToBounds = YES; [self setRoundedView:circ toDiameter:100.0];
Это просто ручки UIImageViews но вы можете обобщить его на любой UIView.
Примечание: начиная с iOS 7, clipToBounds нужно да.
// For those looking to round the corners of an image view imageView.layer.cornerRadius = imageView.bounds.size.width/2; imageView.layer.masksToBounds = YES;
нет необходимости для графических вызовов. Просто установите радиус угла на ширину / 2. Это можно сделать на любом визуальном объекте ie
UI
элемент
вам нужно сделать прозрачный UIView (цвет фона Альфа 0), а затем, в своем drawRect:, нарисуйте свой круг с помощью вызовов CoreGraphics. Вы также можете отредактировать слой представления и дать ему cornerRadius.
как уже упоминалось в некоторых комментариях, @IBDesignable делает это намного проще, поэтому вы можете использовать Interface Builder для настройки округленного UIImageView.
сначала создайте класс с именем
RoundedImageView.swift
и вставить в него этот код:import UIKit @IBDesignable public class RoundedImageView: UIImageView { override public func layoutSubviews() { super.layoutSubviews() //hard-coded this since it's always round layer.cornerRadius = 0.5 * bounds.size.width } }
выберите UIImageView в InterfaceBuilder и измените класс с UIImageView на пользовательский RoundedImageView:
Set
Clip to Bounds
в true (или pic будет выходить за пределы круг):Теперь он должен вокруг себя прямо там в InterfaceBuilder, что довольно изящно. Обязательно установите ширину и высоту на те же значения, или он будет иметь форму Цеппелина!