【问题标题】:Change UISearchBar width from right point从右点更改 UISearchBar 宽度
【发布时间】:2013-04-18 22:48:50
【问题描述】:

我有 UISearchBar,我希望它可以在点击时展开。我有类似的动画:

[UISearchBar beginAnimations:nil context:NULL];
[UISearchBar setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UISearchBar setAnimationDuration:0.5];
[self.searchBar setFrame:CGRectMake(self.searchBar.frame.origin.x, self.searchBar.frame.origin.y, self.searchBar.frame.size.width +100, self.searchBar.frame.size.height)];
[UISearchBar commitAnimations];

这是有效的,但它从左向右扩展它,但我希望它从右向左扩展它。我想在界面构建器中执行类似操作,您可以从 9 点中选择 1 来扩展。

我尝试设置

[searchBar.layer setAnchorPoint:CGPointMake(1, 0.5)];

但是没有用。

马尔科

【问题讨论】:

    标签: ios animation width anchor


    【解决方案1】:

    您还应该更改 UISearchBar 的来源以获得所需的效果。例如: self.searchBar.frame = CGRectMake(self.searchBa.frame.origin.x - YOUR_OFFSET, self.searchBa.frame.origin.y, self.searchBa.frame.size.width + YOUR_OFFSET, self.searchBa.frame.size.height).

    【讨论】:

    • 不,我尝试了,但不行,因为它的动画很奇怪。
    【解决方案2】:

    您可以执行以下操作:

    [UIView animateWithDuration:0.5
                     animations:^{
                         [UIView animateWithDuration:1.0 animations:^{
                             self.searchBar.frame = CGRectMake(self.searchBar.frame.origin.x - 50.0f, self.searchBar.frame.origin.y, self.searchBar.frame.size.width + 50.0f, self.searchBar.frame.size.height);
                             [self.searchBar layoutSubviews];
                         }];
                     }
                     completion:^(BOOL finished){  }];
    

    这将使右侧粘住并看到左侧的增长。

    【讨论】:

    • duration value has en 错误应该是 0.5f 而不是 0.5.f;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多