uiviewの自動サイズ設定に丸みを帯びた角(topLeftとtopRight)を作成することは可能ですか?これが私のコードです:
SFDetailViewController.h
@interface SFDetailViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate, PopoverViewListDelegate>
{
...
UIView *header;
}
@property (nonatomic, retain) IBOutlet UIView *header;
@end
SFDetailViewController.m
#import "SFDetailViewController.h"
#import <QuartzCore/QuartzCore.h>
@interface SFDetailViewController ()
@end
@implementation SFDetailViewController
@syntesyze header;
-(void) viewDidLoad
{
....
[self setCornerRadiusToHeader:header];
}
-(void) setCornerRadiusToHeader:(UIView *)headerView
{
CGRect bounds = headerView.layer.bounds;
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:bounds
byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight)
cornerRadii:CGSizeMake(8.0, 8.0)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = bounds;
maskLayer.path = maskPath.CGPath;
[headerView.layer addSublayer:maskLayer];
headerView.layer.mask = maskLayer;
}
ビューはIBで次のように定義されています。
私が得たもの-ビューのサイズが動的であるため、topRightコーナーはまっすぐです。