Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将UILabel添加到UITextField的左侧_Ios_Iphone_Objective C - Fatal编程技术网

Ios 将UILabel添加到UITextField的左侧

Ios 将UILabel添加到UITextField的左侧,ios,iphone,objective-c,Ios,Iphone,Objective C,我试图通过将标签文本放在不可编辑的UITextField中来整合iPhone应用程序中的屏幕空间。它将告诉用户在文本字段中输入什么。下面是一个应用程序的例子,它完全符合我的要求 我已经做了研究,并找到了一些在某种程度上模仿这一点的代码 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 80, 40)]; label.text= @"Exerise Name:"; label.font = [UIFont fontWi

我试图通过将标签文本放在不可编辑的UITextField中来整合iPhone应用程序中的屏幕空间。它将告诉用户在文本字段中输入什么。下面是一个应用程序的例子,它完全符合我的要求

我已经做了研究,并找到了一些在某种程度上模仿这一点的代码

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 80, 40)];
label.text= @"Exerise Name:";
label.font = [UIFont fontWithName:@"Arial" size:12];
[label setTextColor:[UIColor blueColor]];
_txtExerciseName.leftViewMode = UITextFieldViewModeAlways;
_txtExerciseName.leftView = label;

[self.view addSubview:_txtExerciseName];
这是viewDidLoad内部。代码产生如下结果:


显然,通过样式和调整,这可能会奏效,但我想知道是否有更好的方法来做到这一点,我没有看到。如果有人有任何提示、想法或代码示例让我朝着正确的方向前进,我将不胜感激

您试图模仿的效果几乎可以肯定是由以下方式实现的:

  • 在图像编辑应用程序中创建类似文本框的图像,导入到项目中——您也可以通过切片来创建任何宽度字段背景
  • 将上述图像放置在需要标签和文本字段的位置
  • 将无边界UILabel和无边界UIExtField放置在刚刚放置的图像上方的适当位置

应该这样做。无需更改代码。

我看到了一个非常酷的解决方案。当键盘启动/成为第一响应者时,占位符文本移动到文本字段的顶部,然后当文本字段退出第一响应者时,占位符文本消失

实现


同时具有标签和占位符是多余的。没有必要贴标签。只需使用文本字段的占位符。您可以始终只有3个元素:背景图像、标签和文本字段。然后,您可以分别自定义每一个,而不必过多地操作UITextView属性。在我看来,您完全找到了所需的内容。我不知道覆盖视图、UITextFieldViewModeAlways或UITextFields的leftView属性,但从文档看,它们似乎完全支持您所追求的内容。在iOS 6和iOS 7之间,UIElements的外观发生了很大变化。我敢打赌,您发布的“exercise Name”字段(sic)的外观在为iOS 7构建并运行的应用程序中,SunTrust的示例屏幕是iOS 6应用程序(即使它在iOS 7下运行)。尝试使用borderStyle属性。有点奇怪,您没有将我的标记为正确,也没有将其他答案标记为正确,似乎也没有对任何评论投赞成票。我们的建议都没用吗?这是目前维护,使这个接口非常容易实现(不是我的)。谢谢,我添加了一个链接到该项目作为一个快速实现