Подтвердить что ты не робот

UIImage в круге

Может кто-нибудь мне помочь здесь? Новое в качестве разработчика iPhone. Я пытаюсь показать изображение .png в круге вместо прямоугольника, который является стандартом для iPhone

4b9b3361

Ответ 1

Ну, все png файлы - это "прямоугольники", но если вы хотите, чтобы на экране отображалось окружение или другой объект не прямоугольника, вы можете сделать это, используя прозрачность. Чтобы прозрачные пиксели на изображении были прозрачными на iPhone, вы можете установить цвет фона UIImageView для очистки. Это можно сделать в интерфейсе Builder, перетащив ползунок непрозрачности в фоновый цвет, или в коде следующим образом:

UIImage *image = [UIImage imageNamed:@"yourRoundImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.backgroundColor = [UIColor clearColor];
[self.view addSubview: imageView];

Если вы просто хотите добавить круговые углы, чтобы создать круг, вы также можете использовать свойство cornerRadius, как если бы вы добавили в проект проект рамки QuartzCore:

#import <QuartzCore/QuartzCore.h>
UIImage *image = [UIImage imageNamed:@"yourRoundImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
imageView.layer.cornerRadius = image.size.width / 2;
imageView.layer.masksToBounds = YES;
[self.view addSubview: imageView];

Ответ 2

попробуйте этот код

yourImageView.layer.cornerRadius = yourImageView.frame.size.height /2;
yourImageView.layer.masksToBounds = YES;
yourImageView.layer.borderWidth = 0;

это изображение, похожее на изображение с изображением ios 7

Ответ 3

Мой вклад с быстрым расширением, используемым для установки UIImageView в виде круга

extension UIImageView{

    func asCircle(){
        self.layer.cornerRadius = self.frame.width / 2;
        self.layer.masksToBounds = true
    }

}

Просто позвоните MyImageView.asCircle()

Ответ 4

Используйте UIImageView и установите для параметра cornerRadius значение половины высоты и ширины. view.layer.cornerRadius = cornerRadius;

UIImage закругленные углы

Ответ 5

Попробуйте это, чтобы получить закругленные углы изображения View, а также покрасить углы:

self.imgView.layer.cornerRadius =self.imgView.frame.size.height/2;
self.imgView.layer.masksToBounds = YES;
self.imgView.layer.borderColor = [UIColor colorWithRed:148/255. green:79/255. blue:216/255. alpha:1.0].CGColor;
self.imgView.layer.borderWidth=2;

Условие *: высота и ширина изображения должны быть одинаковыми для округления углов.

Ответ 6

Изменение углаRadius изображения выглядит хорошо, если у вас есть только несколько изображений в вашем представлении. Однако, если изображение будет отображаться в производительности таблицы, будет затронуто.

Некоторые другие опции:

  • Сделайте круги объектов изображения на сервере или вручную, если они включены в приложение, с прозрачными частями для внешней области круга.
  • Если фон изображения не изменяется, создайте изображение наложения, которое имеет часть внутреннего круга прозрачно, а остальное будет таким же, как фон. Также установите backgroundColor изображения в clearColor.
  • При получении изображений отредактируйте их в коде как круг, в фоновом потоке.

Ответ 7

Я добавлю немного более универсальное расширение к UIImageView, которое будет работать с неквадратичными изображениями. Следует отметить, что он будет работать медленнее, чем метод cornerRadius.

extension UIImageView {
    @IBInspectable public var asEllipse:Bool {
        get {
            if let mask = self.layer.mask {
                return mask.name == kMaskLayerName
            }
            return false;
        }

        set {
            if (newValue) {
                let ellipseMask = CAShapeLayer()
                ellipseMask.name = kMaskLayerName
                ellipseMask.path = CGPathCreateWithEllipseInRect(self.bounds, nil)
                ellipseMask.strokeColor = UIColor.clearColor().CGColor
                ellipseMask.fillColor = UIColor.whiteColor().CGColor
                self.layer.mask = ellipseMask
            } else if self.asEllipse {
                self.layer.mask = nil
            }
        }
    }

}

private let kMaskLayerName="EllipseMaskLayer"