0

ここに示すように、フォームのフィールドにエラー アイコンを動的に追加しています。

エラーアイコン

コードでアイコンを生成していて、スーパービューの右上に配置したいのですが、好きな場所に移動できません。スクリーンショットは、左側にとどまっている様子を示していますが、右側にあるはずです。

これが私のコードです:

//Create the image
UIImageView *errorIcon =[[UIImageView alloc] initWithFrame:CGRectMake(-10,-10,23,23)];

//Set the image file
errorIcon.image = [UIImage imageNamed:@"error.png"];

//Tell the image to position it on the top-right (flexible left margin, flexible bottom margin)
errorIcon.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin;

フレームの x 値を何に設定しても、右に固定できません。

frameおよび/またはの何が間違っていautoResizingMaskますか?

4

2 に答える 2

1

あなたの問題はこの行です:

UIImageView *errorIcon = 
    [[UIImageView alloc] initWithFrame:CGRectMake(-10,-10,23,23)];

これは、スーパービューの左上を意味します。そこに置きたい場所がない場合は、そこに置かないでください。

右上はこちら:

UIImageView *errorIcon = 
    [[UIImageView alloc] initWithFrame:
        CGRectMake(superview.bounds.size.width-10,-10,23,23)];

(superviewスーパービューとなるビューへの参照を代用するため。)

于 2013-05-10T05:01:11.597 に答える
1

自動サイズ変更ルールは、ビューまたはスーパービューのサイズを変更するときにのみ適用されます。初期位置を設定するためのものではありません。さらに、エラー アイコンの原点(-10, -10)は左上隅のすぐ外側にあります。おそらく必要なのは次のとおりです。

UIImageView *errorIcon = [[UIImageView alloc] initWithImage:errorImage];
errorIcon.center = CGPointMake(yourFieldView.frame.size.width, 0);
[yourFieldView addSubview:errorIcon];
于 2013-05-10T04:58:17.577 に答える