首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据框架调整视图边界的大小

根据框架调整视图边界的大小
EN

Stack Overflow用户
提问于 2015-01-05 19:57:43
回答 1查看 254关注 0票数 3

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

代码语言:javascript
运行
复制
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)  
}   

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

我做了一个按钮,点击后,它会根据标签框设置标签的边界。尽管它似乎不起作用。

代码语言:javascript
运行
复制
    label.bounds = CGRectMake(0, 0, CGRectGetWidth(self.label.frame), CGRectGetHeight(self.label.frame))

上面所做的是将其调整为不同于框架的坐标。

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

代码语言:javascript
运行
复制
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)

它所做的是,一旦设置了边界,它就会改变帧的值。有人知道怎么解决这个问题吗?

我已经尝试从先前的帧值设置帧,但仍然不起作用。

EN

Stack Overflow用户

发布于 2015-04-18 12:05:43

您正在运行scenario described in the documentation for UIView setTransform:

警告

如果此属性不是标识转换,则frame属性的值未定义,因此应忽略。

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

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

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27779048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档