所以我正在使用这个自定义UIButton类:https://github.com/victorBaro/VBFPopFlatButton
在文档中,作者使用了这个例子。
//Example
self.flatRoundedButton = [[VBFPopFlatButton alloc]initWithFrame:CGRectMake(100, 150, 30, 30)
buttonType:buttonMenuType
buttonStyle:buttonRoundedStyle
animateToInitialState:YES];
self.flatRoundedButton.roundBackgroundColor = [UIColor whiteColor];
self.flatRoundedButton.lineThickness = 2;
self.flatRoundedButton.tintColor = [UIColor flatPeterRiverColor];
[self.flatRoundedButton addTarget:self
action:@selector(flatRoundedButtonPressed)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:self.flatRoundedButton];
由于buttonType
是一个get-only属性,我不能只创建一个VBFPopFlatButton
实例然后分配类型,即我必须在创建实例时分配类型。我只是想知道是否有一种方法来初始化而不必显式设置框架(使用CGRectMake
)因为我想稍后使用约束来设置按钮的框架。
OR
如果有一种方法可以在初始化后覆盖CGRectMake
吗?
答案 0 :(得分:1)
VBFPopFlatButton
没有buttonType
属性。它具有currentButtonType
属性,可以读/写,因此您可以稍后分配该类型。
无论如何,只需将框架设置为CGRectZero
即可。然后关闭translatesAutoresizingMaskIntoConstraints
:
self.flatRoundedButton = [[VBFPopFlatButton alloc] initWithFrame:CGRectZero
buttonType:buttonMenuType buttonStyle:buttonRoundedStyle animateToInitialState:YES];
self.flatRoundedButton.translatesAutoresizingMaskIntoConstraints = NO;
然后你可以在按钮上添加你想要的任何约束。