【发布时间】:2021-11-29 00:05:09
【问题描述】:
我没有使用界面构建器/故事板,我以编程方式完成所有操作,并且没有自动布局。在这种情况下,如果你设置一个 UIColorwell 并给它一个框架,那么实际的 colorwell 图像(即彩虹圈)将始终是相同的大小,并且会粘在它自己框架的左上角,而不管框架大小。我期待它随着它的框架大小一起缩放。这种固定大小因设备而异,因此很难与 UI 上的任何其他图像/SF 符号对齐。
我尝试了各种技术来使颜色井居中,例如更改其 contentHorizontalAlignment 和 contentVerticalAlignment,但它仍然卡在左上角。但即使我设法将它放在自己的框架内,我仍然不知道渲染的圆点大小,所以我不能将它定位在其他相同大小的圆之外(就像在 iOS 的标记中所做的那样)。我查看并更改了各种 UIControl 属性,但也无济于事。
两个问题:有什么方法可以在设备运行时找出彩虹圈的渲染点大小/像素大小?有没有办法让它(彩虹圈)以自己的框架为中心(这对于可触摸的矩形很重要)。
我使用 Objective C(不确定 Swift 上是否存在这种行为),我在 iOS 14 上,尚未测试 iOS 15。我正常设置:
colorWell = [[UIColorWell alloc] init];
[colorWell addTarget:self action:@selector(colorWellPressed:) forControlEvents:UIControlEventTouchUpInside];
colorWell.supportsAlpha = NO;
colorWell.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
我非常感谢您对这个问题的任何想法。干杯。
【问题讨论】:
标签: ios user-interface uikit core-graphics uicontrol