Противоположные диагональные края CALayer

Когда я устанавливаю свойство transform моего CALayer с помощью CATransform3DRotate, слой правильно поворачивается. Однако края слоя зазубрены и не сглажены. Я прочитал пару сообщений по теме:

iPhone: CALayer + вращаются в 3D + антиалиасы?

iPhone – Jagged Edges при применении перспективы к CALayer

Я попытался включить их советы, установив следующие свойства на моем диагональном слое

CALayer* layer = myView.layer; layer.shadowOpacity = 0.01; layer.edgeAntialiasingMask = kCALayerTopEdge | kCALayerBottomEdge | kCALayerRightEdge | kCALayerLeftEdge; layer.borderWidth = 1.0; layer.borderColor = [UIColor clearColor].CGColor; layer.backgroundColor = [UIColor greenColor].CGColor; 

Я также переопределил drawLayer: inContext: метод моего диагонального слоя для обеспечения сглаживания:

 -(void)drawLayer:(CALayer*)layer inContext:(CGContextRef)context { CGContextSetAllowsAntialiasing(context, true); CGContextSetShouldAntialias(context, true); CGContextSetFillColorWithColor(context, [UIColor greenColor].CGColor); CGContextFillRect(context, self.bounds); } 

Что мне не хватает?

2 Solutions collect form web for “Противоположные диагональные края CALayer”

Я только что написал об этом для изображений. Может быть, это поможет.

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

Посмотрите, помогает ли что-то из этого кода:

  UIImage * img =[UIImage imageWithData:[NSData dataWithContentsOfFile:[[[NSBundle mainBundle ] resourcePath ] stringByAppendingPathComponent:@"AliasImage.png" ] ] ]; CGRect imageRect = CGRectMake( 0 , 0 , img.size.width + 4 , img.size.height + 4 ); UIGraphicsBeginImageContext( imageRect.size ); [img drawInRect:CGRectMake( imageRect.origin.x + 2 , imageRect.origin.y + 2 , imageRect.size.width - 4 , imageRect.size.height - 4 ) ]; CGContextSetInterpolationQuality( UIGraphicsGetCurrentContext() , kCGInterpolationHigh ); img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); [aliasImage setImage:img ]; aliasImage.transform = CGAffineTransformScale(aliasImage.transform , 0.45 , 0.45 ); aliasImage.layer.shouldRasterize = YES; aliasImage.layer.rasterizationScale = 0.45; aliasImage.layer.edgeAntialiasingMask = kCALayerLeftEdge | kCALayerRightEdge | kCALayerBottomEdge | kCALayerTopEdge; aliasImage.clipsToBounds = NO; aliasImage.layer.masksToBounds = NO; 

У меня есть несколько примеров, размещенных здесь

Начиная с iOS7, это теперь, наконец, возможно на основе каждого слоя и без каких-либо уродливых взломов, таких как прозрачные пиксели или обходные пути, такие как растеризация:

layer.allowsEdgeAntialiasing = YES;

Интересно, что это не распространяется на официальную документацию CALayer, но, безусловно, является публичным API. Ознакомьтесь с отличиями API iOS7 и замечательной записью Питера Стейнбергера « Скрытые драгоценные камни и обходные пути» в iOS7 .

  • Как делать ежечасные обновления местоположения без сохранения значка?
  • Камера iOS 7 UIImagePickerController, покрытая статическим изображением
  • scrollViewDidEndScrollingAnimation не вызывается
  • Какой тип предупреждения «Нет подключения к сети» следует использовать для моего iPhone-приложения
  • Как заставить UIScrollView отправлять сообщения scrollViewDidScroll во время анимации
  • Как правильно остановить и возобновить CADisplayLink?
  • Не удается очистить Центр уведомлений без значка или значка aps = 0?
  • iOS 8 Рекомендуемые приложения - как это работает?
  • Есть ли способ получить доступ к папке документа в iphone / ipad (реальное устройство, без симулятора)?
  • Действие кнопки в режиме mkannotation не работает?
  • UITableView загружается с ячейками в середине TableView. Зачем?
  • Interesting Posts

    Как найти и установить текст в UILabel UITableViewCell в Swift?

    Определите страну, связанную с идентификатором Apple, зарегистрированным на устройстве iOS

    Как создать как Lite, так и полную версию приложения iPhone на основе одного проекта xcode?

    Приложение cocos2d mac, как добавить заставку при запуске (Default.png)

    Что такое нормальный рост кучи при использовании инструмента распределения?

    Семантические проблемы при запуске проекта объединения arkit в xcode beta

    Основные проблемы с AVAssetReader при чтении образцов видео

    установить заголовок элемента кнопки задней панели в ios

    Ошибка при загрузке в Testflight Неожиданный анализ ошибок IPA

    скрыть вводToolbar в JSQMessagesViewController

    Почему я получаю сообщение «Это приложение модифицирует механизм автозапуска из фонового потока» при использовании UIWebView?

    Есть ли эквивалент API для распознавания активности Android в iOS?

    ios – SizeToFit для UIImageView не работает

    Невозможно зарегистрировать пользователя с арабскими именами

    Приложение iOS падает при съемке

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.