我没有使用界面生成器/故事板,我做一切编程和没有自动布局。在这种情况下,如果你设置一个UIColorwell并给它一个帧,实际的colorwell图像(即彩虹圆)将始终是相同的大小,并被粘在自己的帧的左上角,而不管帧的大小。我希望它能与它的帧大小一起缩放。这种固定的大小在不同的设备上是不同的,这使得它很难与UI上的任何其他图像/SF符号对齐。
我尝试了各种技术来居中颜色,比如改变它的contentthorizontalalignment和contentVerticalAlignment,但它仍然停留在左上角。但即使我设法将其置于其自身框架的中心,我仍然不知道渲染的圆点大小,所以我无法将其置于其他相同大小的圆之外(就像iOS的Markup中所做的那样)。我查看并更改了各种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);
我非常感谢你对这个问题的任何意见。欢呼。这个适合我:
UIColorWell *cPicker=[[UIColorWell alloc] initWithFrame:CGRectMake(50,10,60,40)];
cPicker.title=@"Select Color";
cPicker.supportsAlpha=NO;
cPicker.selectedColor=[UIColor blackColor];
[cPicker addTarget:self action:@selector(cWellC:) forControlEvents:UIControlEventValueChanged];
[cPicker addTarget:self action:@selector(cWellT:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:cPicker];[cPicker release];