小编Abi*_*ain的帖子

使用UIBezierPath绘制图形曲线

我正在申请中绘制图表.我的问题是我想画线连接顶点作为曲线.目前我正在绘制它们UIBezierPath的功能addLineToPoint:.我想把它们画成曲线.我很清楚,UIBezierPath有以下两个功能来支持此功能.

立方曲线:addCurveToPoint:controlPoint1:controlPoint2: 二次曲线:addQuadCurveToPoint:controlPoint:

但问题是我没有控制点.我只有两个终点.我都没有找到确定控制点的方法/公式.有人能帮我一下吗?如果有人能提出一些替代方案我会很感激......

iphone core-graphics objective-c ios uibezierpath

15
推荐指数
5
解决办法
2万
查看次数

Swift 2.1:CAGradientLayer颜色位置和分布

我需要在视图中显示3色分布.所以我正在使用以下代码.

func drawWithGradientLayer() {

        // total contains sum of all values contained in segmentValues variable.
        // I'm using green -> Orange -> Red colors as colors

        if total == 0 {
            return
        }

        if gradientLayer.superlayer != nil {
            gradientLayer.removeFromSuperlayer()
        }

        var previous: CGFloat = (CGFloat(segmentValues[0])/CGFloat(total))
        var locations: [NSNumber] = [previous]

        for var i=1; i<segmentValues.count; i++ {
            previous = previous + (CGFloat(segmentValues[i])/CGFloat(total))
            locations.append(previous)
        }

        locations.append(1.0) // Line may need to be commented

        gradientLayer = CAGradientLayer()
        gradientLayer.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height) …
Run Code Online (Sandbox Code Playgroud)

calayer ios cagradientlayer swift

9
推荐指数
1
解决办法
5259
查看次数

IOS8:AVFoundation相机冻结

可能重复:自定义相机视图在iOS 8/Xcode 6上不起作用

我正在使用AVFoundation拍摄静止图像.iOS8到达之前一切正常.在IOS8如果我的应用程序切换到后台,而摄像机层仍然浮动,然后应用进来前景后,相机层冻结,并要求捕获图像的方法简化版,工作.有帮助吗?

iphone objective-c avfoundation swift ios8

8
推荐指数
1
解决办法
1472
查看次数

基于一组超级有序字符串对NSStrings的NSArray进行排序

我有一个NSArray包含一些NSString对象.例如:

NSArray *objects = @[@"Stin",@"Foo",@"Ray",@"Space"];
Run Code Online (Sandbox Code Playgroud)

现在我需要根据字符串的顺序对此数组进行排序.

NSArray *sortOrder = @[@"John",@"Foo",@"Space",@"Star",@"Ray",@"Stin"];
Run Code Online (Sandbox Code Playgroud)

所以答案应该是

NSArray *sorted = @[@"Foo",@"Space",@"Ray",@"Stin"];
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

答案: 基于对dasblinkenlight的接受答案,我做了以下,并且它有魅力.

NSMutableArray *objects = @[@"Star",@"Stin",@"Foo",@"Ray",@"Space",@"John"];
NSArray *sortOrder = @[@"John",@"Foo",@"Space",@"Star",@"Ray",@"Stin"];

[objects sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    int index1 = [sortOrder indexOfObject:obj1];
    int index2 = [sortOrder indexOfObject:obj2];

    if (index1 > index2)
        return NSOrderedDescending;
    if (index1 < index2)
        return NSOrderedAscending;
    return NSOrderedSame;
}];
Run Code Online (Sandbox Code Playgroud)

sorting objective-c nsstring nsarray ios

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

IONIC:DocumentProvider扩展的共享容器文件夹,如Swift

我想为Document Provider extension最初在IONIC开发的应用程序做一个.
我知道我可以使用.xcodeproj文件在XCode中打开项目,然后为预期添加新目标extension.
但是,我对AppGroup(应用程序和扩展程序)之间的共享存储感到困惑.
根据NSFileManager(现在的FileManager),您需要将文件存储在具有组标识符的共享容器中.
实现此目的的方法如下: -

func containerURL(forSecurityApplicationGroupIdentifier groupIdentifier: String) -> URL?
Run Code Online (Sandbox Code Playgroud)

但是根据IONIC指南,文件可以保存在以下位置之一: - 在此输入图像描述

根据IONIC Developer的说法,这些文件当前位于App的文档目录中,我们需要将这些文件放在共享容器中,如上所述.

我们怎样才能做到这一点?

仅供参考:我在IONIC论坛上找不到任何有关此问题的帮助,我正在按照教程进行扩展开发.

ios cordova ionic-framework swift ios-extensions

6
推荐指数
0
解决办法
248
查看次数

MkMapView点击+注释选择问题

我有一个MkMapView,我有一些注释.单击注释时,其详细信息在另一个视图中打开,该视图在地图视图的下半部分具有滚动视图.当我们滚动滚动视图时,地图以下一个注释为中心,其详细信息显示在scrollview中.

我的问题是我想在地图上添加一个点击手势,这样当我点击地图时,滚动视图应该隐藏.为此,我在地图上添加了一个UiTapGesture也可以正常工作,但问题是地图上的注释不再保持可用.地图总是进行tapgesture的动作,它再也不会再调用selectannotation方法了?

我该如何解决这个问题????

iphone annotations mapkit mkmapview ios

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

AVPlayerController:全屏Autolayout问题

我正在使用以下代码在我的Swift应用程序(iOS 9)中播放视频:

        let fileUrl = NSBundle.mainBundle().URLForResource("welcome", withExtension: ".mp4")
        videoItem =  AVPlayerItem(URL: fileUrl!)
        videoPlayer = AVPlayer(playerItem: videoItem)
        videoPlayer.addObserver(self, forKeyPath: "rate", options: [.New], context: nil)

        videoPlayerController.player = videoPlayer
        videoPlayerController.showsPlaybackControls = false

        videoPlayerController.view.frame = CGRectMake(0, 0, playerView.frame.size.width, playerView.frame.size.height)
        playerView.insertSubview(videoPlayerController.view, belowSubview: videoCoverView)

        videoPlayerController.willMoveToParentViewController(self)
        addChildViewController(videoPlayerController)
        videoPlayerController.didMoveToParentViewController(self)

        playerView.bringSubviewToFront(btnPlay)

        let asset = AVAsset(URL: fileUrl!)
        let imageGenerator = AVAssetImageGenerator(asset: asset)
        let time = CMTime(seconds: asset.duration.seconds/2.0, preferredTimescale: 1)

        do {
            let imageRef = try imageGenerator.copyCGImageAtTime(time, actualTime: nil)
            let coverImage = UIImage(CGImage: imageRef)
            videoCoverView.image = coverImage
        } catch {

        } …
Run Code Online (Sandbox Code Playgroud)

ios avplayer autolayout swift

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

iTunesConnect:处理提交到testflight的处理已停止

从今天开始,每次我使用Application Loader将构建上传到Appstore时,我的app都会因App Thinning错误而被拒绝.我试图禁用bitcode并再次上传构建但没有用.有人可以帮我解决这个错误吗? 在此输入图像描述

xcode itunesconnect testflight xcode7.3

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

Swift4:respondstoSelector不工作

以下代码在swift 3.x中完美运行,但在swift 4中运行不正常.

let selector = "managerDidDetectedStation:"
let observer = <UIViewController subclass object>
let station = <Station Object>

if observer.responds(to: Selector(selector) {         
    observer.perform(Selector(selector), with: station)
}
Run Code Online (Sandbox Code Playgroud)

observer.responds(to: Selector(selector)总是返回false.有人知道swift4中这个api有什么变化吗?

uiviewcontroller nsobject ios swift4

4
推荐指数
1
解决办法
3142
查看次数

不同NSArray对象的组合

我想找到elements不同的组合arrays.假设我有三个NSArray对象:

NSArray *set1 = [NSArray arrayWithObjects:@"A",@"B",@"C", nil];
NSArray *set2 = [NSArray arrayWithObjects:@"a",@"b", nil];
NSArray *set3 = [NSArray arrayWithObjects:@"1",nil];
Run Code Online (Sandbox Code Playgroud)

现在所需的答案是在数组之后

NSArray *combinations = [{A},{B},{C},{a},{b},{1},{A,a},{A,b},{A,1},{B,a},{B,b},{B,1},{a,1},{b,1},{A,a,1},{A,b,1},{B,a,1},{B,b,1},{C,a,1},{C,b,1}];
Run Code Online (Sandbox Code Playgroud)

编辑 目前我已经完成了以下代码,我可以得到两个长度的组合.

    NSArray *set1 = [NSArray arrayWithObjects:@"A",@"B",@"C", nil];
    NSArray *set2 = [NSArray arrayWithObjects:@"a",@"b", nil];
    NSArray *set3 = [NSArray arrayWithObjects:@"1",nil];

    NSArray *allSets = [NSArray arrayWithObjects:set1,set2,set3,nil];
    NSMutableArray *combinations = [NSMutableArray new];

    for (int index = 0; index < allSets.count; index++) {
        [combinations addObject:[NSMutableArray array]];
    }

    NSMutableArray *singleCombinations = combinations[0];

    for (NSArray *set in …
Run Code Online (Sandbox Code Playgroud)

combinations objective-c nsset ios

2
推荐指数
1
解决办法
652
查看次数