gpt4 book ai didi

iOS CGAffineTransform Scale 保持左 anchor

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:28:18 25 4
gpt4 key购买 nike

我正在使用 CGAffineTransformScale 缩小我的 UITableView,它正在正确缩小它,但我似乎无法正确设置 anchor 。

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

如果我不设置 anchor ,它会从中心缩小它,但根据我的要求,我需要保持左上角点固定。为此,我使用了这个

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

但这并没有正确设置 anchor 。还有一件事我还没有使用 AutoLayout

谁能帮我解决这个问题……?提前致谢..

最佳答案

试试这个

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

在这里设置 anchor

-(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;
}

关于iOS CGAffineTransform Scale 保持左 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23285634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com