我正在申请中绘制图表.我的问题是我想画线连接顶点作为曲线.目前我正在绘制它们UIBezierPath的功能addLineToPoint:.我想把它们画成曲线.我很清楚,UIBezierPath有以下两个功能来支持此功能.
立方曲线:addCurveToPoint:controlPoint1:controlPoint2:
二次曲线:addQuadCurveToPoint:controlPoint:
但问题是我没有控制点.我只有两个终点.我都没有找到确定控制点的方法/公式.有人能帮我一下吗?如果有人能提出一些替代方案我会很感激......
我需要在视图中显示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) 可能重复:自定义相机视图在iOS 8/Xcode 6上不起作用
我正在使用AVFoundation拍摄静止图像.iOS8到达之前一切正常.在IOS8如果我的应用程序切换到后台,而摄像机层仍然浮动,然后应用进来前景后,相机层冻结,并要求捕获图像的方法简化版,工作.有帮助吗?
我有一个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) 我想为Document Provider extension最初在IONIC开发的应用程序做一个.
我知道我可以使用.xcodeproj文件在XCode中打开项目,然后为预期添加新目标extension.
但是,我对AppGroup(应用程序和扩展程序)之间的共享存储感到困惑.
根据NSFileManager(现在的FileManager),您需要将文件存储在具有组标识符的共享容器中.
实现此目的的方法如下: -
func containerURL(forSecurityApplicationGroupIdentifier groupIdentifier: String) -> URL?
Run Code Online (Sandbox Code Playgroud)
根据IONIC Developer的说法,这些文件当前位于App的文档目录中,我们需要将这些文件放在共享容器中,如上所述.
我们怎样才能做到这一点?
仅供参考:我在IONIC论坛上找不到任何有关此问题的帮助,我正在按照本教程进行扩展开发.
我有一个MkMapView,我有一些注释.单击注释时,其详细信息在另一个视图中打开,该视图在地图视图的下半部分具有滚动视图.当我们滚动滚动视图时,地图以下一个注释为中心,其详细信息显示在scrollview中.
我的问题是我想在地图上添加一个点击手势,这样当我点击地图时,滚动视图应该隐藏.为此,我在地图上添加了一个UiTapGesture也可以正常工作,但问题是地图上的注释不再保持可用.地图总是进行tapgesture的动作,它再也不会再调用selectannotation方法了?
我该如何解决这个问题????
我正在使用以下代码在我的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) 以下代码在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有什么变化吗?
我想找到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) ios ×8
objective-c ×4
swift ×4
iphone ×3
annotations ×1
autolayout ×1
avfoundation ×1
avplayer ×1
calayer ×1
combinations ×1
cordova ×1
ios8 ×1
mapkit ×1
mkmapview ×1
nsarray ×1
nsobject ×1
nsset ×1
nsstring ×1
sorting ×1
swift4 ×1
testflight ×1
uibezierpath ×1
xcode ×1
xcode7.3 ×1