我想在文本字段中使用一个图标,并且正在使用setLeftView属性。
我目前的代码是
UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 26, tb_teamA_playerA.bounds.size.height)];
leftView.contentMode = UIViewContentModeScaleAspectFit;
[leftView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed : @"person_26" ]]];
[tb_teamA_playerA setLeftView :leftView];
[tb_teamA_playerA setLeftViewMode: UITextFieldViewModeAlways];
这就是结果。
最左边的图像是一个单独的UIImageView,具有相同的图像集,并且比例尺设置为ScaleAspectFit。
因此,我期望两个图像的大小和比例相同,但不是吗?!
最佳答案
您正在使用UIViewContentModeScaleAspectFit,因此图像将适合UITextField的大小。
我认为您应该使用UIViewContentModeScaleAspectFill,并且如果您在尺寸上有问题,并且两个图像的尺寸仍然不相同,则应该调整图像的大小。
以下来自Doc
UIViewContentModeScaleToFill
如有必要,可通过更改内容的纵横比来缩放内容以适合其自身的大小。
UIViewContentModeScaleAspectFit
通过保持纵横比来缩放内容以适合视图的大小。视图边界的所有剩余区域都是透明的。
UIViewContentModeScaleAspectFill
缩放内容以填充视图的大小。内容的某些部分可能会被裁剪以填充视图的边界。