问题标签 [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.
ios - 在运行时和方向更改期间居中和 sizeToFit 子视图
这是我在设置一些UIView
s 和子视图时遇到的几个问题中的第一个。我有一个UIView
在运行时动态定位在屏幕上的。那UIView
(master) 包含另一个UIView
(child) 包装 aUIImageView
和 a UILabel
。以下是我对这种安排的要求:
- 设备旋转时,子设备
UIView
必须保持在主设备的中心。UIView
- 中的文字
UILabel
可以很长也可以很短,UIView
带有图像和文字的孩子仍然必须保持居中。 - 我想避免子类化 UIView 来处理这种情况,我还想避免任何框架/定位代码,
willRotateToInterfaceOrientation.
我想用autoresizingMask
IB 中的一些设置来处理所有这些,如果可能的话,可能还有一些强制调整大小的代码。
这是 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 布局帮助将不胜感激。
谢谢!
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:
方法:
uilabel - UILabel sizeToFit 中的 UICollectionView
我在 UICollectionView 中使用了 CustomCellClass。在 uilabel sizeToFit 中尝试此类,但不工作。
但是在 cellForItemAtIndexPath 方法中创建新的 uilabel ,可以正常工作。
如何在 CustomCellClass UILabel 中设置 SizeToFit UICollectionView;
谢谢。
ios - sizeToFit 如何确定合适的尺寸?
我有一个应用程序,用户可以在其中随意添加我称之为调色板的东西。项目 ( UIViews
) 可以从一个调色板拖到另一个调色板。我想我可以使用该sizeToFit
方法在添加或删除项目时自动调整调色板的大小,但似乎没有调整大小。
该文档指出该方法将大小调整为最合适的大小以适合子视图。这不包括UIViews
我以编程方式添加的内容吗?
sizeToFit
如果我可以让内置方法为我工作,我真的不必编写自己的方法。但它似乎什么也没做。这是我尝试过的代码:
添加子视图之前和之后的大小相同。添加的子视图是我运行此测试时唯一的子视图,子视图的大小约为它要移动到的调色板大小的 5%。那么为什么不调整视图的大小呢?我需要自己做吗?
ios - 移出屏幕后动态高度 UILabel 工作
我正在尝试在 UITableViewCells 中创建多行动态 UILabel。我有一个带有“评论”标签的自定义 UITableViewCell。单元格和标签在情节提要中创建。
我可以根据要存储在 UILabel 中的多行数据(使用 heightForRowAtIndexPath)正确计算 UITableViewCells 的高度。但是,我的问题在于实际的 UILabel 内容。UILabel 内容将在表加载时仅显示 1 行数据。但是,一旦包含多行 UILabel 数据的单元格移出屏幕并重新出现在屏幕上,多行数据就会正确显示在具有多行的 UILabel 中。有没有办法解决这个问题,以便多行数据在表加载时正确显示?
谢谢!
iphone - 单元格上带有 sizeToFit 的 UILabel 动态宽度
我有一个习惯UITableViewCell
,UILabel
里面有Storyboard
. 我动态设置了这个文本,UILabel
我需要UILabel
相应地调整它的宽度,因为在它之后我有另一个UILabel
必须保持并排。
我正在尝试
会发生什么:在第一次渲染时,UILabel
只保留在 上设置的宽度storyboard
,因此文本被裁剪或后面有太多空间。
滚动后,单元格出列并sizeToFit
正确应用该方法,但为时已晚,因为第二个UILabel
已经定位在错误的位置。(由于信誉限制低,无法发布图片)
任何想法?
uitextview - 在 IOS7 中使用 UITextView 的 sizetofit 时会发生奇怪的事情
当我在 IOS7 模拟器上测试我的应用程序时。有时我发现sizeToFit
使用UITextView
. 之后的框架sizeToFit
看起来是正确的,但文字只能部分显示,就像下面的照片一样。(灰色区域代表UITextView
之后的新框架sizeToFit
,整句应该是“which sparked a tensive relationship between the two.”)
UITextView
文本是通过属性文本设置的。似乎问题仅出现在某些句子中,并且对于大多数句子来说都可以。
我多次遇到这个问题,但仍然无法解决。任何帮助将不胜感激。谢谢。
更新:
最后我以一种丑陋的方式解决了这个问题。我重置了 textView 的文本。
现在它可以显示 sizeToFit 之后的全部内容。我认为这似乎是 IOS 7 的错误。
ios - 为什么在尝试垂直对齐我的 UILabel 时 sizeToFit 不起作用?它只是停留在中心
我正在阅读这篇文章以获取有关如何在 UILabel 中垂直对齐文本的建议,顶部评论似乎提供了一个很好的解决方案。
我有我UILabel
的 , 行数为 0。然后在viewDidLoad
视图控制器中,它是它的一部分,我调用sizeToFit
了它,但它仍然只占据中间。
在 Interface Builder 中看起来像这样:
当我运行它时看起来完全一样,当我希望它非常接近时,文本仍然离导航栏很远,最好是在那个大纲框的顶部。
我究竟做错了什么?
ios - 调整 UITextView 的大小 - 高度不调整
这应该很容易,但由于某种原因,它对我不起作用。我想调整我的文本框的大小,理想情况下在底部有一些填充。现在,我将满足于适当调整大小。
设置
我的故事板上的单一视图
界面
执行
我尝试了几种不同的解决方案,包括在这里更改框架的高度和其他用户建议...
这是使用 ios7 和 xcode 5,但我不明白为什么这样的基本功能会出现问题。
为了增加我的困惑,我在 sizeToFit 之后记录了框架高度和内容大小。我的结果是:
所以框架清楚地知道正确的高度,但是在显示器上所有的文本都被截断了,盒子没有调整大小。