gpt4 book ai didi

ios - 根据框架调整 View 的边界

转载 作者:搜寻专家 更新时间:2023-10-31 23:04:28 24 4
gpt4 key购买 nike

我现在的情况是我正在尝试调整标签的大小,我可以使用 UIPinchGestureRecognizer 轻松地调整它的大小,但这样做只是调整标签框架的大小。

func handleScale(recognizer: UIPinchGestureRecognizer)
{

recognizer.view!.transform = CGAffineTransformScale(recognizer.view!.transform,
recognizer.scale, recognizer.scale)
recognizer.scale = 1

recognizer.view!.frame = CGRectMake(recognizer.view!.frame.minX,recognizer.view!.frame.minY, recognizer.view!.frame.width, recognizer.view!.frame.height)
}

我希望能够更改标签的边界,以便在新的框架尺寸中再次呈现文本。我试过仅调整比例尺中标签边界的大小,但无法正常工作。

我制作了一个按钮,点击它会根据标签框架设置标签边界。虽然它似乎不起作用。

    label.bounds = CGRectMake(0, 0, CGRectGetWidth(self.label.frame), CGRectGetHeight(self.label.frame))

上面的操作是将它的大小调整到与框架不同的坐标。

这是按钮操作的打印日志:

Frame Before(-54.2193053279009,279.213449112017,513.438610655802,85.5731017759669)
Bounds Before(0.0,0.0,300.0,50.0)
label.bounds = CGRectMake(0, 0, CGRectGetWidth(self.label.frame), CGRectGetHeight(self.label.frame))
Frame After(-236.8653448536,248.7724425244,878.7306897072,146.4551149512)
Bounds After(0.0,0.0,513.438610655802,85.5731017759669)

它所做的是,一旦设置了边界,它就会更改框架的值。有谁知道如何解决这个问题?

我已尝试根据之前的帧值设置帧,但仍然无效。

最佳答案

您正在遇到 described in the documentation for UIView setTransform: 场景:

WARNING

If this property is not the identity transform, the value of the frame property is undefined and therefore should be ignored.

如果您的目标只是简单地在视觉上缩小标签,只需应用变换而不调整框架。

如果您打算在保持文本大小不变的同时缩小标签的几何矩形,您可以使用 CGRectApplyAffineTransform(CGAffineTransformMakeScale(recognizer.scale, recognizer.scale)) 生成一个新框架.如果您发现您的文本仍然没有更新,您应该尝试在标签上调用 setNeedsLayoutsetNeedsDisplay(取决于其绘图的处理方式)。

关于ios - 根据框架调整 View 的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27779048/

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