我创建了一个UIButton
子类,并添加了一个IBInspectable属性,可以在imageView
内旋转UIButton
。在InterfaceBuilder中,所有这些似乎都很完美,但在运行时,它表现得很奇怪。
这是我的代码
MyButton.m
@implementation MyButton
-(void)awakeFromNib{
[super awakeFromNib];
[self setUpView];
}
-(void)layoutSubviews{
[self setUpView];
[super layoutSubviews];
}
-(void)prepareForInterfaceBuilder{
[self setUpView];
}
-(void)setUpView{
self.transform = CGAffineTransformMakeRotation(self.angle * M_PI / 180.0);
}
@end
在Main.storyboard中如下所示
我在这里做的是使用32 MyButton使它看起来像牙齿。
但在运行时,它看起来像这样
我尝试的是:
我评论了
self.imageView.transform = CGAffineTransformMakeRotation(self.angle * M_PI / 180.0);
然后按钮获得适当的高度宽度但看起来不好,因为它们需要旋转
我已将代码更改为
self.transform = CGAffineTransformMakeRotation(self.angle * M_PI / 180.0);
它有点工作。
那么我缺少什么或者我做错了什么?
答案 0 :(得分:-2)
我认为问题在于秩序。在setUpView之后调用layoutSubviews,扰乱了UIImageView。
所以试试一个小修复。用这个更改你的布局子视图方法;
-(void)layoutSubviews{
[super layoutSubviews]; // Supper layoutSubviews should be on top
[self setUpView]; // and then customization
}
所以现在你应该可以像这样转换你的imageView;
self.imageView.transform = CGAffineTransformMakeRotation(self.angle * M_PI / 180.0);
感谢;