簡體   English   中英

如何以編程方式准確定位 UIColorwell?

[英]How to position UIColorwell accurately programmatically?

我沒有使用界面構建器/故事板,我以編程方式完成所有工作,沒有自動布局。 在這種情況下,如果你設置一個 UIColorwell 並給它一個框架,那么實際的 colorwell 圖像(即彩虹圓圈)將始終是相同的大小,並被粘在它自己框架的左上角,無論框架大小如何。 我期待它隨着它的框架尺寸而縮放。 這種固定大小因設備而異,因此很難將其與 UI 上的任何其他圖像/SF 符號對齊。

我嘗試了各種技術來使色井居中,例如更改其 contentHorizo​​ntalAlignment 和 contentVerticalAlignment,但它仍然停留在左上角。 但即使我設法將它放在它自己的框架內,我仍然不知道渲染的圓點大小,所以我無法將它放置在其他相同大小的圓之外(如 iOS 的標記中所做的那樣)。 我查看並更改了各種 UIControl 屬性,但也無濟於事。

兩個問題:有沒有辦法在運行時找出設備的彩虹圓的渲染點大小/像素大小? 有沒有辦法讓它(彩虹圈)以自己的框架為中心(這對於可觸摸的矩形很重要)。

我使用目標 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];  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM