使用RNFrostedSidebar作为UIViewController的一部分

时间:2014-12-09 07:38:39

标签: ios objective-c uiviewcontroller

所以我在Github找到了一个非常吸引人的弹出侧边栏动画。但是,我只能将它用作弹出侧边栏(如下面的截图)。我想将它作为左侧栏添加到我的ViewController(如第二个屏幕截图),但还没有找到办法。有什么建议吗? enter image description here enter image description here 更新:这是我的viewDidLoad。我试过了[self.view addSubview:callout.contentView],但它无法正常工作

- (void)viewDidLoad {
    [super viewDidLoad];
    NSArray *images = @[
                        [UIImage imageNamed:@"Home.png"],
                        [UIImage imageNamed:@"Me.png"],
                        [UIImage imageNamed:@"Search.png"],
                        [UIImage imageNamed:@"Trends.png"],
                        [UIImage imageNamed:@"Setting"],
                        ];

    RNFrostedSidebar *callout = [[RNFrostedSidebar alloc] initWithImages:images];
    callout.delegate = self;

    [self.view addSubview:callout.contentView];

    [callout show]; }

这是RNFrostedSidebar API

RNFrostedSidebar.h RNFrostedSidebar.m

1 个答案:

答案 0 :(得分:2)

为什么不为此目的使用简单的UIView? RNFrostedSideBar是您需要的太多自定义解决方案。

只需设置足够的自动布局约束并更改sideBar插座宽度 - 约束常量值(动画)。看看Auto Layout Guide,它会帮助你。

我将尝试解释我对您的UIViewController视图内容的看法

+-------------------------+
|sideBar|  contentView    |
|       |                 |
|       |                 |
|       |                 |
|       |                 |
|       |                 |
|       |                 |
+-------------------------+
 <--W-->

W是与您的@property (weak) IBOutlet NSLayoutConstraint *sideWidthConstraint相关联的宽度布局约束。 sideBarcontentView的所有其他约束(例如LeadingTrailingTopBottom应设置为零。注意视图之间的约束。它也必须为零:

+---------------------------+
| sideBar |-0-| contentView |

如果您需要更改sideBar宽度(并减少contentView之一),只需更改sideWidthConstraint常量值:

[UIView animateWithDuration:0.3 animations:^{
  self.sideWidthConstraint.constant = expanded ? 50 : 0; // expanded - YES of NO
  [self.view layoutIfNeeded];
}];