Я всегда использую простой метод, чтобы получить вид закругленных угловIOS, как удалить тонкую пограничную линию затем использовать layer.cornerRadius
+ (void)setRoundedCornersByView:(UIView*) givenView roundAngle:(int)roundAngle borderWidth:(double)borderWidth borderColor:(UIColor*)borderColor alphaBorder:(double)alphaBorder {
givenView.layer.cornerRadius = roundAngle;
givenView.layer.borderColor = [[borderColor colorWithAlphaComponent:alphaBorder] CGColor];
givenView.layer.borderWidth = borderWidth;
givenView.layer.masksToBounds = YES;
}
Но теперь я получил тонкую рамку вокруг закругленной линии, это тонкая линия, которая имеет цвета, как цвет фона округлой зрения
Как удалить его без использования OnDraw, потому что это невозможно сделать - потому что это среднее значение я должен переопределить все IOS управления, где мне нужно скругленные углы.
Также у попытаться использовать
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:bound byRoundingCorners:corners cornerRadii:cornerRadii];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = givenView.bounds;
maskLayer.path = maskPath.CGPath;
givenView.layer.mask = maskLayer;
, но, как вы можете видеть, это не полностью закругленные
У меня была такая же проблема в http://stackoverflow.com/questions/28822940/ios-clean-corners-for-rounded-profile-image – milesper
Если используется цифровой измеритель цвета смотреть по краям округленного вида вы увидите, что есть несколько пикселей, которые представляют собой цвет фона и цвет представления, и это то, что делает iOS, чтобы края выглядели менее зубчатыми. Я не думаю, что вы можете с этим поделать. Он делает то же самое, используете ли вы закругленные углы или маску. – rdelmar
Можете ли вы создать второй, чуть больший округленный вид, пустой с 'backgroundColor = [UIColor clearColor]' и установите 'borderColor' таким же, как ваш первый вид. Затем поместите второй вид сверху первого (в zorder) с равными их центрами, таким образом, второе представление будет охватывать дрябловые биты? –