我正在动态地向表单中的字段添加错误图标,如下所示:
我在代码中生成了图标,我想将其放在超级视图的右上角上,但我无法将其放在我想要的位置。屏幕截图显示了它如何保持在左侧,但它应该在右侧。
这是我的代码:
//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
答案 0 :(得分:1)
只有在调整视图或超级视图大小时才会启用自动调整规则,而不是设置初始位置。此外,您的错误图标来源(-10, -10)
正好在左上角之外。你可能需要的只是:
UIImageView *errorIcon = [[UIImageView alloc] initWithImage:errorImage];
errorIcon.center = CGPointMake(yourFieldView.frame.size.width, 0);
[yourFieldView addSubview:errorIcon];
答案 1 :(得分: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
替换对将成为超级视图的视图的引用。)