[iOS] Kantenglättung (Anti-Aliasing) bei rotierten UIViews

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [iOS] Kantenglättung (Anti-Aliasing) bei rotierten UIViews

    Rotiert man UIViews, indem man deren Eigenschaft transform setzt, erhält man ausgefranste oder pixelige Ränder.

    osxentwicklerforum.de/index.ph…9f9bd69d96088ca7455eca6a5

    Um eine Art Kantenglättung zu erreichen, bedienen wir uns des Frameworks QuartzCore:

    osxentwicklerforum.de/index.ph…9f9bd69d96088ca7455eca6a5

    Quellcode

    1. NSArray *views; // enthält die zu glättenden Views
    2. NSMutableArray *containers; // enthält später die Container-Views
    3. for (int i = 0; i < views.count; i ++) {
    4. UIView *view = [views objectAtIndex:i];
    5. view.layer.borderWidth = 3;
    6. view.layer.borderColor = [UIColor clearColor].CGColor;
    7. view.layer.shouldRasterize = YES;
    8. view.layer.shadowOffset = CGSizeMake(0, -1);
    9. view.layer.shadowOpacity = 1;
    10. view.layer.shadowColor = [UIColor blackColor].CGColor;
    11. UIView *container = [[UIView alloc] initWithFrame:CGRectMake(view.frame.origin.x - 5, view.frame.origin.y - 5, view.frame.size.width + 2 * 5, view.frame.size.height + 2 * 5)];
    12. container.backgroundColor = [UIColor clearColor];
    13. [container addSubview:view];
    14. [self addSubview:container];
    15. view.center = CGPointMake(container.bounds.size.width / 2, container.bounds.size.height / 2);
    16. [containers addObject:container];
    17. [container release];
    18. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von AR.DDev ()