问题标签 [sizetofit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2571 浏览

ios - 在运行时和方向更改期间居中和 sizeToFit 子视图

这是我在设置一些UIViews 和子视图时遇到的几个问题中的第一个。我有一个UIView在运行时动态定位在屏幕上的。那UIView(master) 包含另一个UIView(child) 包装 aUIImageView和 a UILabel。以下是我对这种安排的要求:

  1. 设备旋转时,子设备UIView必须保持在主设备的中心。UIView
  2. 中的文字UILabel可以很长也可以很短,UIView带有图像和文字的孩子仍然必须保持居中。
  3. 我想避免子类化 UIView 来处理这种情况,我还想避免任何框架/定位代码,willRotateToInterfaceOrientation.我想用autoresizingMaskIB 中的一些设置来处理所有这些,如果可能的话,可能还有一些强制调整大小的代码。

这是 Interface Builder 中的控件排列(以红色突出显示):

Interface Builder 控件配置

使用 Interface Builder,autoresizingMask属性已像这样设置,用于描述的控件

  • UIView(master): 弹性上边距、弹性左边距、弹性右边距、弹性宽度
  • UIView(子):灵活的上边距,灵活的下边距,灵活的左边距,灵活的右边距,灵活的宽度,灵活的高度。(所有模式,无除外)
  • UIImageView: 灵活的右边距
  • UILabel: 灵活的右边距

这是在纵向模式下在运行时以编程方式添加后的视图(带有图像和文本的红色条):

主人UIView的背景是浅红色的图像。childUIView的背景比这稍微暗一些,而UILabel's 的背景更暗。我为它们着色,以便在应用程序响应旋转时可以看到它们的边界。

在此处输入图像描述

我很清楚:

  • 它不是居中的,但...
  • 在将文本从“此地图范围内没有数据”更改为 IB 中的默认值后。到“TEST1, 123”。标签正确收缩。

这是在纵向添加然后旋转到横向模式后的视图:

在此处输入图像描述

从这里我可以看到:

  • 它仍然没有居中,并且可能在旋转之前位于其原始框架原点
  • UIView(子)已扩展以填充更多不应该的屏幕。
  • UIView(主)已正确扩展以填充屏幕宽度。

这就是让我走到现在的代码。showNoDataStatusView我从 viewDidLoad调用该方法:

请注意以下事项:

  • resizeToFitSubviews是我放置在 UIView 上的一个类别,一旦我发现 UIView 不会自动调整大小以适应它们的子视图,即使你调用sizeToFit. 这个问题这个问题解释了这个问题。请参阅下面的类别代码。
  • 我曾考虑过创建一个 UIView 子类来为我处理所有这些逻辑,但这似乎有点矫枉过正。在IB中安排这个应该很简单吧?
  • 我已经尝试设置书中的每个调整大小掩码设置,以及调整标签和视图大小调整发生的顺序以及将主视图添加为子视图的点。似乎没有任何效果,因为我每次都会得到奇怪的结果。

UIView resizeToFitSubviews 类实现方法:

我想知道的是为什么UIView(子)在将其超级视图添加到视图层次结构后没有正确居中。它看起来好像得到了正确的宽度,但是当标签显示“此地图范围内没有数据”时,它以某种方式保留了它在 IB 中的帧。

我还想知道为什么它在设备旋转后没有居中,以及我在这里采用的方法是否明智。也许这导致了我遇到的其他问题。任何 UIView 布局帮助将不胜感激。

谢谢!

0 投票
3 回答
1085 浏览

ios - 将 UILabel 直接定位在另一个 UILabel 下方

我有一个附加功能,NSString它会根据正在读入的文本自动调整 a的大小UILabel(我有一个简单的应用程序显示引文,所以有些是几个词,有些是几个句子)。在该标签下方quote,我还有一个author标签,其中(奇怪的是)其中包含引用的作者。

我试图将该author标签直接放置在标签下方quote(如,它的y坐标将是quote标签的y坐标加上quote标签的height。我看到的是两个标签之间放置了一些空间,这取决于报价的长度, 改变大小。较小的引号有更多的空间,而较长的引号有更少的空间。这是我所看到的快速图表:

在此处输入图像描述 在此处输入图像描述

请注意红色和蓝色框之间的差距(我已经使用它设置,layer.borderColor/borderWidth以便我可以在应用程序中看到它们),报价越短越大。

如果有人可以筛选下面的代码并帮助我指出导致差异的确切原因,我将不胜感激。据我所知,author标签应始终比quote标签y + height值低 35 像素。

只是为了确认:一切都在 Interface Builder 中正确连接,等等。引用的内容很好,其他一切正常,所以它已经连接,这不是问题。

澄清一下,我的问题是:为什么标签之间的间隙会根据引用的长度而变化,我怎样才能正确获得稳定的、可设置的 35 像素间隙?

这是我用来定位标签的代码:

这是我的自定义方法sizeToFitMultipleLines

这是我的fontSizeWithFont:constrainedToSize:minimumFontSize:方法:

0 投票
1 回答
332 浏览

uilabel - UILabel sizeToFit 中的 UICollectionView

我在 UICollectionView 中使用了 CustomCellClass。在 uilabel sizeToFit 中尝试此类,但不工作。

但是在 cellForItemAtIndexPath 方法中创建新的 uilabel ,可以正常工作。

如何在 CustomCellClass UILabel 中设置 SizeToFit UICollectionView;

谢谢。

0 投票
2 回答
206 浏览

ios - sizeToFit 如何确定合适的尺寸?

我有一个应用程序,用户可以在其中随意添加我称之为调色板的东西。项目 ( UIViews) 可以从一个调色板拖到另一个调色板。我想我可以使用该sizeToFit方法在添加或删除项目时自动调整调色板的大小,但似乎没有调整大小。

该文档指出该方法将大小调整为最合适的大小以适合子视图。这不包括UIViews我以编程方式添加的内容吗?

sizeToFit如果我可以让内置方法为我工作,我真的不必编写自己的方法。但它似乎什么也没做。这是我尝试过的代码:

添加子视图之前和之后的大小相同。添加的子视图是我运行此测试时唯一的子视图,子视图的大小约为它要移动到的调色板大小的 5%。那么为什么不调整视图的大小呢?我需要自己做吗?

0 投票
5 回答
5741 浏览

ios - 滚动时带有 UILabel SizeToFit 的 UITableView 会变得一团糟

大家好,我有问题,我用withtableview制作 Cell,然后计算Height 以设置单元格 Height 一切正常,除非我滚动我的文本变得奇怪,就像每行一个字符:uilabelSizeToFitUILabeltableView

我的TableViewVell方法是:

单元格高度保持在正确的大小问题仅与UILabel...这是我加载视图时的结果:

第一张截图

这是在我开始滚动 TableView 之后:

第二张截图

任何帮助???

0 投票
2 回答
1035 浏览

ios - 移出屏幕后动态高度 UILabel 工作

我正在尝试在 UITableViewCells 中创建多行动态 UILabel。我有一个带有“评论”标签的自定义 UITableViewCell。单元格和标签在情节提要中创建。

我可以根据要存储在 UILabel 中的多行数据(使用 heightForRowAtIndexPath)正确计算 UITableViewCells 的高度。但是,我的问题在于实际的 UILabel 内容。UILabel 内容将在表加载时仅显示 1 行数据。但是,一旦包含多行 UILabel 数据的单元格移出屏幕并重新出现在屏幕上,多行数据就会正确显示在具有多行的 UILabel 中。有没有办法解决这个问题,以便多行数据在表加载时正确显示?

谢谢!

0 投票
2 回答
6460 浏览

iphone - 单元格上带有 sizeToFit 的 UILabel 动态宽度

我有一个习惯UITableViewCellUILabel里面有Storyboard. 我动态设置了这个文本,UILabel我需要UILabel相应地调整它的宽度,因为在它之后我有另一个UILabel必须保持并排。

我正在尝试

会发生什么:在第一次渲染时,UILabel只保留在 上设置的宽度storyboard,因此文本被裁剪或后面有太多空间。

滚动后,单元格出列并sizeToFit正确应用该方法,但为时已晚,因为第二个UILabel已经定位在错误的位置。(由于信誉限制低,无法发布图片)

任何想法?

0 投票
4 回答
6625 浏览

uitextview - 在 IOS7 中使用 UITextView 的 sizetofit 时会发生奇怪的事情

当我在 IOS7 模拟器上测试我的应用程序时。有时我发现sizeToFit使用UITextView. 之后的框架sizeToFit看起来是正确的,但文字只能部分显示,就像下面的照片一样。(灰色区域代表UITextView之后的新框架sizeToFit,整句应该是“which sparked a tensive relationship between the two.”)

在此处输入图像描述

UITextView文本是通过属性文本设置的。似乎问题仅出现在某些句子中,并且对于大多数句子来说都可以。

我多次遇到这个问题,但仍然无法解决。任何帮助将不胜感激。谢谢。

更新:

最后我以一种丑陋的方式解决了这个问题。我重置了 textView 的文本。

现在它可以显示 sizeToFit 之后的全部内容。我认为这似乎是 IOS 7 的错误。

0 投票
2 回答
1055 浏览

ios - 为什么在尝试垂直对齐我的 UILabel 时 sizeToFit 不起作用?它只是停留在中心

我正在阅读这篇文章以获取有关如何在 UILabel 中垂直对齐文本的建议,顶部评论似乎提供了一个很好的解决方案。

我有我UILabel的 , 行数为 0。然后在viewDidLoad视图控制器中,它是它的一部分,我调用sizeToFit了它,但它仍然只占据中间。

在 Interface Builder 中看起来像这样:

在此处输入图像描述

当我运行它时看起来完全一样,当我希望它非常接近时,文本仍然离导航栏很远,最好是在那个大纲框的顶部。

我究竟做错了什么?

0 投票
2 回答
3703 浏览

ios - 调整 UITextView 的大小 - 高度不调整

这应该很容易,但由于某种原因,它对我不起作用。我想调整我的文本框的大小,理想情况下在底部有一些填充。现在,我将满足于适当调整大小。

设置

我的故事板上的单一视图

界面

执行

我尝试了几种不同的解决方案,包括在这里更改框架的高度和其他用户建议...

这是使用 ios7 和 xcode 5,但我不明白为什么这样的基本功能会出现问题。

为了增加我的困惑,我在 sizeToFit 之后记录了框架高度和内容大小。我的结果是:

所以框架清楚地知道正确的高度,但是在显示器上所有的文本都被截断了,盒子没有调整大小。