如何在inputAccessoryView里面的UILabel中使用AutoScrollLabel?

时间:2013-12-27 05:17:35

标签: ios xcode uilabel inputaccessoryview

键盘出现时如何在inputAccessoryView内的UILabel中使用AutoScrollLabel。我似乎很难使用它,因为我没有使用IB方法将它连接到代码。我以编程方式执行此操作。我导入了AutoScrollView的.h文件,它给了我错误。 Find the AutoScrollLabel here

这是我的inputAccessoryView代码。

- (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];

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

2 个答案:

答案 0 :(得分:0)

在我的示例中,我使用xib创建了标签,然后在出现时将其添加到键盘acc中。

声明标签,如

@property (strong, nonatomic) IBOutlet CBAutoScrollLabel *autoScrollLabel;

viewDidLoad

self.autoScrollLabel.text = @"This text may be clipped, but now it will be scrolled. This text will be scrolled even after device rotation.";
    self.autoScrollLabel.textColor = [UIColor blueColor];
    self.autoScrollLabel.labelSpacing = 35; // distance between start and end labels
    self.autoScrollLabel.pauseInterval = 1.7; // seconds of pause before scrolling starts again
    self.autoScrollLabel.scrollSpeed = 30; // pixels per second
    self.autoScrollLabel.textAlignment = NSTextAlignmentCenter; // centers text when no auto-scrolling is applied
    self.autoScrollLabel.fadeLength = 12.f;
    self.autoScrollLabel.scrollDirection = CBAutoScrollDirectionLeft;
    [self.autoScrollLabel observeApplicationNotifications];

然后,将代码添加到textfield委托方法textFieldDidBeginEditing:,如下所示

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
    textField.inputAccessoryView = self.autoScrollLabel;
}

最后,将代码添加到textFieldDidBeginEditing:,如下所示

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    textField.inputAccessoryView = nil;
}

答案 1 :(得分:0)

我认为文字不应滚动。我发现,如果显示文本的标签宽度大于要显示的文本,则不会滚动。这会导致显示文本现在被截断为“...”的问题。它滚动,但它只显示文本,包括“...”如果您将字体大小更改为较小的大小,它的工作原理正如所料,这是设计,我不知道。除了这两个问题,这是一个非常好的功能。