voltear voltea porque notes modo las imagen frontal fotos espejo camara best app iphone cocoa-touch uiimageview uiimage

iphone - voltea - Creando una linea horizontal



porque la camara frontal iphone voltea las fotos (5)

Crea un UIView con un fondo negro de 1 píxel de alto y 320 píxeles de ancho.

Tengo dos etiquetas que están apiladas. Si quiero una línea horizontal entre ellos, ¿hay alguna otra manera además de usar una imagen con UIImageView?


Para línea horizontal

UIView *horizontalLine = [[UIView alloc]initWithFrame:CGRectMake(x cordinate,y cordinate,1,linelenth)]; horizontalLine.backgroundColor = [UIColor blackColor]; [self. view addSubView:horizontalLine]; [horizontalLine release];

Para línea vertical

UIView *verticalLine = [[UIView alloc]initWithFrame:CGRectMake(x cordinate,y cordinate,linelenth,1)]; verticalLine.backgroundColor = [UIColor blackColor]; [self. view addSubView:verticalLine]; [verticalLine release];


Puede colocar esto en una UIView

- (void)drawRect:(CGRect)rect { //// General Declarations CGContextRef context = UIGraphicsGetCurrentContext(); //// Shadow Declarations CGColorRef outerShadow = [UIColor blackColor].CGColor; CGSize outerShadowOffset = CGSizeMake(0, 1); CGFloat outerShadowBlurRadius = 2; //// Abstracted Graphic Attributes CGRect rectangleFrame = CGRectMake(0, 0, self.frame.size.width, 3); //// Rectangle Drawing UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: rectangleFrame]; [[UIColor lightGrayColor] setFill]; [rectanglePath fill]; ////// Rectangle Inner Shadow CGRect rectangleBorderRect = CGRectInset([rectanglePath bounds], -outerShadowBlurRadius, -outerShadowBlurRadius); rectangleBorderRect = CGRectOffset(rectangleBorderRect, -outerShadowOffset.width, -outerShadowOffset.height); rectangleBorderRect = CGRectInset(CGRectUnion(rectangleBorderRect, [rectanglePath bounds]), -1, -1); UIBezierPath* rectangleNegativePath = [UIBezierPath bezierPathWithRect: rectangleBorderRect]; [rectangleNegativePath appendPath: rectanglePath]; rectangleNegativePath.usesEvenOddFillRule = YES; CGContextSaveGState(context); { CGFloat xOffset = outerShadowOffset.width + round(rectangleBorderRect.size.width); CGFloat yOffset = outerShadowOffset.height; CGContextSetShadowWithColor(context, CGSizeMake(xOffset + copysign(0.1, xOffset), yOffset + copysign(0.1, yOffset)), outerShadowBlurRadius, outerShadow); [rectanglePath addClip]; CGAffineTransform transform = CGAffineTransformMakeTranslation(-round(rectangleBorderRect.size.width), 0); [rectangleNegativePath applyTransform: transform]; [[UIColor grayColor] setFill]; [rectangleNegativePath fill]; } CGContextRestoreGState(context); }


Si bien la solución de Jasarien es agradable y simple, no crea una rayita real de 1 píxel , sino una línea de 2 píxeles de ancho en dispositivos 2X.

Encontré una publicación de blog sobre cómo crear la delgada línea real de 1 píxel. Necesitamos una subclase UIView de utilidad. Para Swift eso sería:

import UIKit class HairlineView: UIView { override func awakeFromNib() { guard let backgroundColor = self.backgroundColor?.CGColor else { return } self.layer.borderColor = backgroundColor self.layer.borderWidth = (1.0 / UIScreen.mainScreen().scale) / 2; self.backgroundColor = UIColor.clearColor() } }


Use una UIView:

UIView * separator = [[UIView alloc] initWithFrame:CGRectMake(x, y, 320, 1)]; separator.backgroundColor = [UIColor colorWithWhite:0.7 alpha:1]; [self.view addSubview:separator]; [separator release];