UITextfield 中的图像的点数有多大

Posted

技术标签:

【中文标题】UITextfield 中的图像的点数有多大【英文标题】:How big in points is an imag in a UITextfield 【发布时间】:2015-06-17 06:27:21 【问题描述】:

我有一个像这样的UITextfield

UITextfield *name = [[UITextField alloc] initWithFrame:CGRectMake(30, 210, 100, 34)];
name.borderStyle = UITextBorderStyleRoundedRect;
name.backgroundColor = [UIColor whiteColor];
name.font = [UIFont systemFontOfSize:12];
name.leftView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon.png"]];

如果我有以下UITextfield 设置,UIImage 应该是多少分?它是 34 x 34 还是更小一点?我知道,如果是 34 点乘 34 点,我将不得不为x 制作.pngs 34x3468x6892x922x3x 像素显示。

【问题讨论】:

使用 initWithFrame 添加它对我来说似乎更安全。 【参考方案1】:

来自documentation:

The left overlay view is placed in the rectangle returned by the
leftViewRectForBounds: method of the receiver. The image associated 
with this property should fit the given rectangle. If it does not fit, 
it is scaled to fit. If you specify a control for your view, the 
control tracks and sends actions as usual.

这意味着你可以改变leftView的大小。

ios 8.3 上,“leftViewRectForBounds:”值基于 leftView 的大小。如果我使用大小为 300x300 的 leftView,那么框架将为 (0, -125, 300, 300)。如果我使用大小为 30x30 的视图,则框架将为 (0, 10, 30, 30)。 我的 textField 的一个框架是 (0.0, 0.0, 300.0, 50.0)。

【讨论】:

这是正确的答案。 @AndrewRomanov 还请添加指向您引用的文档的链接。 我已添加文档链接。【参考方案2】:
[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon.png"]];

它的框架将是x=0y=0width = width of the imageheight = height of the image

【讨论】:

【参考方案3】:

您可以根据您的要求设置任何分辨率的任何图像。还请在代码的最后一行之前添加以下行,以使图像可见。

[name setLeftViewMode:UITextFieldViewModeAlways];

【讨论】:

以上是关于UITextfield 中的图像的点数有多大的主要内容,如果未能解决你的问题,请参考以下文章

UIBarButtonItem 图像应该有多大?

如何限制 UITextField 中的小数点数?

如何确定 .NET 中的数据类型有多大?

如何限制UITextField中的小数点数?

imagenet100多大

16位色、24位色、32位色有多大差别?