2014-01-22 3 views
0

Я создаю приложение, в котором я хочу перемещать uiview только с одной стороны, Мне нужно изменить одну точку (-y point).Как переместить uiview с одной точки ios

В настоящее время просмотреть отображается как

: enter image description here

Но я хочу это:

enter image description here

я попытался это:

UIView *viewRed=(UIView*)[self.view viewWithTag:11]; 
    float angle = M_PI/10; //rotate 180°, or 1 π radians 
    viewRed.layer.transform = CATransform3DMakeRotation(angle, 0, 0.0, 1.0); 
+0

Я удалить помечены от поворота и поместить их на главный вид. – Optimistic

+0

@MidhunMP: проверьте обновленный вопрос. и, пожалуйста, помогите мне. – Optimistic

+0

Вы можете использовать CAShapeLayer и CATextLayer для этого, также проверьте CoreText и NSAttributedString. –

ответ

1

Используйте изображение с желаемой формы или нарисуйте слой за лабораторией ELS с желаемой формы

EDIT:

UIBezierPath *aPath = [UIBezierPath bezierPath]; 
    // Set the starting point of the shape. 
[aPath moveToPoint:CGPointMake(0.0, 300)]; 

// Draw the lines. 
[aPath addLineToPoint:CGPointMake(self.view.frame.size.width, 300.0)]; 

[aPath addLineToPoint:CGPointMake(self.view.frame.size.width, 200.0)]; 

[aPath addLineToPoint:CGPointMake(0.0, 120.0)]; 


CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 
shapeLayer.path = aPath.CGPath; 
shapeLayer.fillColor = [[[UIColor redColor] colorWithAlphaComponent:0.5] CGColor]; 
[self.view.layer addSublayer:shapeLayer]; 
+0

Как я могу нарисовать слой? Я использую uiview в раскадровке. – Optimistic

+0

thnks, но он не поддерживает, если я меняю ориентацию. :( – Optimistic

+0

И он не установлен в нижней части экрана? Какую рамку я должен изменить, чтобы установить ее в нижней части self.view? – Optimistic

1

Использование CAShapeLayer для достижения этой цели

 CGMutablePathRef path = CGPathCreateMutable(); 
    CGPathMoveToPoint(path,NULL,0.0,200.0); 
    CGPathAddLineToPoint(path, NULL, 320.0f, 250.0f); 
    CGPathAddLineToPoint(path, NULL, 320.0f, 367.0f); 
    CGPathAddLineToPoint(path, NULL, 0.0f, 367.0f); 
    CGPathAddLineToPoint(path, NULL, 0.0f, 200.0f); 


    CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 
    [shapeLayer setPath:path]; 
    [shapeLayer setFillColor:[[UIColor redColor] CGColor]]; 
    [shapeLayer setStrokeColor:[[UIColor blackColor] CGColor]]; 
    [shapeLayer setBounds:CGRectMake(0.0f, 0.0f, 160.0f, 480)]; 
    [shapeLayer setAnchorPoint:CGPointMake(0.0f, 0.0f)]; 
    [shapeLayer setPosition:CGPointMake(0.0f, 0.0f)]; 
    [[[self view] layer] addSublayer:shapeLayer]; 

    CGPathRelease(path); 
+0

Thnk u Frndu. :) – Optimistic

0

Создать UIViwe класс рисовать форму и добавить в BaseView

@interface ShapeView : UIView 

@end 

@implementation fractalTriangel 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
} 
    return self; 
} 

- (void)drawRect:(CGRect)rect 
{ 
CGContextRef ctx = UIGraphicsGetCurrentContext(); 

    CGContextBeginPath(ctx); 
    CGContextMoveToPoint (ctx, point1.x,point1.y); 
    CGContextAddLineToPoint(ctx, point2.x,point2.y); 
    CGContextAddLineToPoint(ctx, point3.x,point3.y); 
    CGContextAddLineToPoint(ctx, point4.x,point4.y); 
    CGContextClosePath(ctx); 

    CGContextSetRGBFillColor(ctx, 1,1, 1, 1);//set color 

    CGContextFillPath(ctx); 
} 


@end 
Смежные вопросы