圆形UIView和按钮?

时间:2014-12-29 09:28:02

标签: xcode uitableview uiview uibutton

我正在尝试复制下面的按钮(YO ap)

enter image description here

这个按钮漂浮在桌子视图正上方,但是视图完全是圆形的,你可以通过k字母如何从下面完美地伸出来看到这一点。是否可以创建一个圆形的UIView?任何想法如何创建阴影效果?

由于

2 个答案:

答案 0 :(得分:3)

要制作圆形视图,您可以更改视图的cornerRadius属性。 例如,您可以在某处创建一个正方形(width == height)按钮,在viewController中为它创建一个插座(例如@property (weak, nonatomic) IBOutlet UIButton *bMyButton;)然后设置它的角半径,如下所示:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.bMyButton.layer.cornerRadius = self.bMyButton.frame.size.height / 2;
}

使按钮"漂浮"在tableView之上,我相信,你应该将它添加为顶视图的子视图(与tableView在同一层次结构上)。 最后,你可以"附加"通过约束(自动布局)查看右下角。您可以在此处详细了解自动布局:Auto Layout Guide

至于阴影,我从来没有这样做,但我想,你应该看看其他layer属性:shadowRadiusshadowOffset,{{1等等。

例如:

shadowOpacity

注意,UIView可能不会被剪裁到它的边界。例如,这是UIImageView的情况。如果你想要一个圆形UIImageView,你还必须将self.bMyButton.layer.shadowRadius = self.bMyButton.frame.size.width / 2 + 5; 设置为masksToBounds

YES

答案 1 :(得分:0)

如果您想以编程方式添加UIButton

//margin
CGFloat margin = 10.f;
//your image
UIImage *image = [UIImage imageNamed:@"side_menu.png"];
//create a button of custom type
UIButton *circularBtn = [UIButton buttonWithType:UIButtonTypeCustom];
//set background colour (if your image includes background colour then you may don't need this)
circularBtn.backgroundColor = [UIColor colorWithRed:245.f/255.f green:71.f/255.f blue:64.f/255.f alpha:1.f];
//set your image
[circularBtn setImage:image forState:UIControlStateNormal];
//dynamic frame
circularBtn.frame = CGRectMake(self.view.frame.size.width - (image.size.width * 2.f + margin ), 
self.view.frame.size.height - (image.size.height * 2.f + margin), 
(image.size.width * 2.f), (image.size.height * 2.f));
//add to self or any other view you want
[self.view addSubview:circularBtn];
//round the button
circularBtn.layer.cornerRadius = circularBtn.frame.size.width/2.f;
//add the shadow
circularBtn.layer.shadowColor = [UIColor blackColor].CGColor;
circularBtn.layer.shadowOpacity = 0.7f;

看起来应该是,

enter image description here

在我的例子中,我是大小为40x40(WxH)和@ 2x的透明图像。