相关疑难解决方法(0)

iOS 7 TableView就像iPad上的设置应用程序一样

我想有风格同样喜欢iPad的设置应用程序的一组UITableView的详细视图用于iOS的7.

这是一个圆角的tableView.请查看附件了解详情.

是一些默认设置使它看起来像那样,或者我们需要为它做一些自定义绘图.

任何暗示正确的方向将不胜感激.

谢谢

在此输入图像描述

objective-c uitableview ipad ios ios7

97
推荐指数
4
解决办法
3万
查看次数

UIView的两个角落

不久之前,我发布了一个关于在视图的两个角上进行四舍五入的问题,得到了很好的响应,但是在实现它时遇到了问题.这是我的drawRect:方法:

- (void)drawRect:(CGRect)rect {
    //[super drawRect:rect]; <------Should I uncomment this?
    int radius = 5;
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextBeginPath(context);
    CGContextAddArc(context, rect.origin.x + radius, rect.origin.y + rect.size.height - radius, radius, M_PI, M_PI / 2, 1);
    CGContextAddArc(context, rect.origin.x + rect.size.width - radius, rect.origin.y + rect.size.height - radius, radius, M_PI / 2, 0.0f, 1);
    CGContextClosePath(context);
    CGContextClip(context);
}
Run Code Online (Sandbox Code Playgroud)

正在调用该方法,但似乎不会影响视图的结果.有什么想法吗?

iphone objective-c rounded-corners ios

77
推荐指数
7
解决办法
7万
查看次数

在swift中创建一个只有两个圆角的矩形?

我需要在swift中创建一个只有两个圆角的矩形(Objective C代码也可以).

目前我的代码正在创建两个矩形

CGPathCreateWithRoundedRect(CGRectMake(0, 0, 30, 60), 5, 5, nil);
Run Code Online (Sandbox Code Playgroud)

CGPathCreateWithRoundedRect(CGRectMake(0, 0, 30, 60), 0, 0, nil);
Run Code Online (Sandbox Code Playgroud)

合并它们(有两个直角和两个圆角)但我对代码不满意,我很确定应该有更好的方法来做到这一点.

我是iOS和图形开发的新手.

core-graphics ios swift

38
推荐指数
8
解决办法
5万
查看次数

如何设置cornerRadius只用于UIView的左下角,右下角和左上角?

有没有办法只为UIView的左下角,右下角和左上角设置cornerRadius?

我尝试了下面这个,但最终让视图消失了.下面的代码有什么问题吗?

    UIBezierPath *maskPath;
    maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:(UIRectCornerBottomLeft | UIRectCornerBottomRight) cornerRadii:CGSizeMake(20.0, 20.0)];
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.path = maskPath.CGPath;
    view.layer.mask = maskLayer;
Run Code Online (Sandbox Code Playgroud)

iphone xcode objective-c ipad ios

32
推荐指数
4
解决办法
4万
查看次数

Swift中UIButton的圆顶角

我知道我可以使用以下四个角来围绕:

 myBtn.layer.cornerRadius = 8
 myBtn.layer.masksToBounds = true
Run Code Online (Sandbox Code Playgroud)

由于我只想围绕第二轮,我做了一些研究,发现了这个:

extension UIView {
    func roundCorners(corners:UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.CGPath
        self.layer.mask = mask
    }
}
Run Code Online (Sandbox Code Playgroud)

这被称为:

view.roundCorners([.TopLeft , .TopRight], radius: 10)
Run Code Online (Sandbox Code Playgroud)

然而,这对于UIButton不起作用.当我将扩展名切换为类型UIButton并将其传递给按钮时,输出如下所示:

在此输入图像描述

问题是,我如何使其适应UIButton?

rounded-corners uibutton ios swift

30
推荐指数
6
解决办法
3万
查看次数

视图显示在Debug View Hierarchy中,但不显示在device/sim上

这个问题让我很困惑.我有一个小的UIView我用来显示选择了哪个按钮.但是,它没有显示在我的应用程序中 - 它应该在"本地活动"下,但不会显示:

图片

那很好,我想,我只是调试视图层次结构,看看它在哪里!看起来它应该是它应该是的位置:

查看层次结构 3D视图 - 它是最重要的!

有谁知道这里会发生什么?谢谢您的帮助!

iphone xcode view uiview ios

24
推荐指数
3
解决办法
6197
查看次数

不同的cornerRadius为每个角落Swift 3 - iOS

我想为Swift -3中的视图设置不同的角半径,我可以将每个角的半径设置为相同的值,如下面的帖子中提到的那样,如何设置cornerRadius仅用于左上角和顶部UIView的右角?

有没有办法按以下格式设置转角半径?半径左上:18半径右上:18半径右下:3半径左下:18

cornerradius ios swift3

15
推荐指数
3
解决办法
1万
查看次数

圆角特定SwiftUI

我知道您可以用来.cornerRadius()对swiftUI视图的所有角进行圆角处理,但是有没有办法只对特定的角部(例如顶部)进行圆角处理?

user-interface rounding cornerradius swiftui

13
推荐指数
8
解决办法
1772
查看次数

目前设置UIView角落半径的"正确"方法是什么?

设置UIView角的半径可以通过以下方式完成:

  1. 设置layercornerRadius属性:

    view.layer.cornerRadius = 5;
    view.layer.masksToBounds = true;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 涂上面膜:

    func roundCorners(corners:UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.cgPath
        self.layer.mask = mask
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 覆盖draw(_:):

    func draw(_ rect: CGRect) {
        // Size of rounded rectangle
        let rectWidth = rect.width
        let rectHeight = rect.height
    
        // Find center of actual frame to set rectangle in middle
        let xf: CGFloat = (self.frame.width …
    Run Code Online (Sandbox Code Playgroud)

uiview ios swift

10
推荐指数
5
解决办法
5878
查看次数

创建圆角视图

美好的一天!

我试图让我的视图(在主视图中查看)使圆角.我这样做,但它不起作用.有任何想法吗?

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
    currenView = [[UIView alloc] init]; 

    UIBezierPath *maskPath;
    maskPath = [UIBezierPath bezierPathWithRoundedRect:currenView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(30.0, 30.0)];

    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.frame = currenView.bounds;
    maskLayer.path = maskPath.CGPath;
    currenView.layer.mask = maskLayer;


}
return self;
Run Code Online (Sandbox Code Playgroud)

objective-c ios

6
推荐指数
1
解决办法
7391
查看次数

圆形特定角,仅在特定边上显示阴影

我有以下代码只围绕视图的特定角:

- (void)roundOnlySpecifiedCornersInView:(UIView *)view corners:(UIRectCorner)corners
{
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:(corners) cornerRadii:CGSizeMake(4.0, 4.0)];
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];

    maskLayer.path  = maskPath.CGPath;
    view.layer.mask = maskLayer;
}
Run Code Online (Sandbox Code Playgroud)

这完全孤立地工作.现在我在想法中也想要阴影,但我特别想在不同的情况下应用阴影:

  • 在各方面
  • 所有方面除了底部
  • 除顶部外的所有方面
  • 仅限左/右侧

我遇到的所有技术都是通过创建视图的插图来完成的.这个的问题是,假设你只想在左/右侧保持阴影,你偏移底部和顶部.由于Rect现在不太高,左右的阴影不会覆盖视图的整个高度.此外,用于圆角的遮罩层会导致阴影不再出现.

示例代码:

    innerView.layer.shadowColor = [[UIColor colorWithWhite:0.0f alpha:0.1f] CGColor];
    innerView.layer.shadowOpacity = 1.0f;
    innerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
    innerView.layer.shadowRadius = 6.0f;

    CGRect shadowFrame = UIEdgeInsetsInsetRect(innerView.bounds, UIEdgeInsetsMake(9, 0, 9, 0));
    CGPathRef shadowPath = [UIBezierPath bezierPathWithRect:shadowFrame].CGPath;

    innerView.layer.shadowPath = shadowPath;
Run Code Online (Sandbox Code Playgroud)

如何在视图中对特定角进行圆角处理,同时仅在指定边显示阴影?

Swift中的答案也很受欢迎!

我想要的截图(这个很简单,因为所有角都需要圆角所以我可以使用.layer.cornerRadius它并且它在所有边都有阴影): 在此输入图像描述

现在我只想围绕2个角(左上角和右上角,左下角和右下角)并仅向某些边添加阴影.

objective-c uiview ios uibezierpath

6
推荐指数
1
解决办法
1181
查看次数

使用NSBezierPath在NSView上绘制圆角很差

在ViewController的主NSView中,我使用重写了func drawRect(dirtyRect: NSRect)在主视图上实现圆角的方法NSBezierPath。用同样的方法,我还指定了主视图的渐变背景。

override func drawRect(dirtyRect: NSRect) {

    let path: NSBezierPath = NSBezierPath(roundedRect: self.bounds, xRadius: 18.0, yRadius: 18.0)
    path.addClip()

   let gradient = NSGradient(startingColor: NSColor(hexColorCode: "#383838"), endingColor: NSColor(hexColorCode: "#222222"))
   gradient.drawInRect(self.frame, angle: 90)
}
Run Code Online (Sandbox Code Playgroud)

下图说明了出现的问题:

该图显示了视图角之一。圆角的倒圆仅部分成功,因为仍然有一个白色圆角伸出到窗口的圆角之外。

如果有人有更好的方法设置窗口的拐角半径,我会接受这样的建议。我对此事进行了大量研究,但是这种解决方案似乎是最简单的。

非常感谢您提供有关如何解决此问题的建议。

macos nsview swift

5
推荐指数
1
解决办法
1328
查看次数