2

を使用CGAffineTransformScaleしてUITableView縮小していますが、正しく縮小されていますが、アンカーポイントを正しく設定できないようです。

self.myTableView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.8, 0.8);

アンカーポイントを設定しないと、中心から縮小されますが、私の要件として、左上隅のポイントを固定しておく必要があります。このために私はこれを使用しました

self.myTableView.layer.anchorPoint = CGPointMake(0, 0);
self.myTableView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.8, 0.8);

しかし、これはアンカーを正しく設定しません..私が使用していないもう1つのことAutoLayout

誰か助けてください…?前もって感謝します..

4

1 に答える 1

5

これを試して

[self setAnchorPoint:CGPointMake(0, 0.5) forView:recognizer.view]; // for left anchor point

ここで setAnchorPoint

-(void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view
{
CGPoint newPoint = CGPointMake(view.bounds.size.width * anchorPoint.x,
                               view.bounds.size.height * anchorPoint.y);
CGPoint oldPoint = CGPointMake(view.bounds.size.width * view.layer.anchorPoint.x,
                               view.bounds.size.height * view.layer.anchorPoint.y);

newPoint = CGPointApplyAffineTransform(newPoint, view.transform);
oldPoint = CGPointApplyAffineTransform(oldPoint, view.transform);

CGPoint position = view.layer.position;

position.x -= oldPoint.x;
position.x += newPoint.x;

position.y -= oldPoint.y;
position.y += newPoint.y;

view.layer.position = position;
view.layer.anchorPoint = anchorPoint;
}
于 2014-04-25T07:16:23.997 に答える