在 UIToolbar 中移动 UILabel 的文本

Posted

技术标签:

【中文标题】在 UIToolbar 中移动 UILabel 的文本【英文标题】:Moving the text of a UILabel in a UIToolbar 【发布时间】:2013-12-25 05:15:52 【问题描述】:

如何将 UILabel 的文本从一侧移动到另一侧并重复。 UILabel 位于作为工具栏的“inputAccessoryView”的 UIToolbar 内。我还有一个问题是如何将多个项目作为某物的自我。查看我的代码,您会看到我将“cell1Field1Dismiss”作为输入 inputAccessoryView 的 self。

为了进一步澄清,我有一个带有大约 10 个 UITextFields 和另外 10 个 UITextFields 的 viewController 来让第一响应者辞职。

- (void)viewDidLoad

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 23)];
    label.backgroundColor = [UIColor clearColor];
    label.shadowOffset = CGSizeMake(0, 1);
    label.text = @"24 Hour time format only!";
    label.font = [UIFont systemFontOfSize:17.0];
    [label setTextColor:[UIColor whiteColor]];

    UIBarButtonItem *text2 = [[UIBarButtonItem alloc] initWithCustomView:label];

    //UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

    //UIBarButtonItem *flexibleSpace2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

    UIToolbar* numberToolbar = [[UIToolbar alloc]init];
    numberToolbar.barStyle = UIBarStyleBlackOpaque;
    numberToolbar.items = [NSArray arrayWithObjects:text2, nil];
    [numberToolbar sizeToFit];
    self.cell1Field1Dismiss.inputAccessoryView = numberToolbar;

第一响应者辞职的IBAction是:

- (IBAction)hideKeyboard:(id)Sender

    [cell1Field1Dismiss resignFirstResponder];
    [cell1Field1 resignFirstResponder];

    [cell1Field2Dismiss resignFirstResponder];
    [cell1Field2 resignFirstResponder];

    [cell2Field1Dismiss resignFirstResponder];
    [cell2Field1 resignFirstResponder];

    [cell2Field2Dismiss resignFirstResponder];
    [cell2Field2 resignFirstResponder];

    [cell3Field1Dismiss resignFirstResponder];
    [cell3Field1 resignFirstResponder];

    [cell3Field2Dismiss resignFirstResponder];
    [cell3Field2 resignFirstResponder];

    [cell4Field1Dismiss resignFirstResponder];
    [cell4Field1 resignFirstResponder];

    [cell4Field2Dismiss resignFirstResponder];
    [cell4Field2 resignFirstResponder];

    [cell5Field1Dismiss resignFirstResponder];
    [cell5Field1 resignFirstResponder];

    [cell5Field2Dismiss resignFirstResponder];
    [cell5Field2 resignFirstResponder];

转到此图像以查看提到的视图控制器。 http://i.stack.imgur.com/UVVpi.png

【问题讨论】:

【参考方案1】:

要退出键盘,您可以使用

[self.view endEditing:YES]  remove all the resignFirstResponders.

找到字幕标签here的解决方案

【讨论】:

对于我的项目,我没有使用 ARC,我读到您的 Marquee Label 使用了。还能用吗? @user3121577 可以使用该文件的 -fno-objc-arc 编译器标志为特定文件禁用 ARC。 我该怎么做。很抱歉给大家带来了麻烦,但我是新手。 我可以只使用 Quartz Core 而不是使用和导入 Marquee Label 吗? 选取框标签在 inputAccessoryView 中不起作用。

以上是关于在 UIToolbar 中移动 UILabel 的文本的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UILabel 添加到 UIToolbar?

水平居中 UIToolbar 中的所有项目,包括使用 UILabel 的自定义视图

在拆分视图中的 UIToolbar 上将文本注释完全居中

UIToolbar 中工具栏项之间的分隔符

如何在uitoolbar中将标签设置为居中

移动 UIToolbar 的最佳方式是啥?