Вы можете использовать свойства endPoint
и startPoint
вашего CAGradientLayer
. Вот так:
let x: Double! = angle / 360.0
let a = pow(sinf(Float(2.0 * .pi * ((x + 0.75) / 2.0))),2.0);
let b = pow(sinf(Float(2 * .pi * ((x+0.0)/2))),2);
let c = pow(sinf(Float(2 * .pi * ((x+0.25)/2))),2);
let d = pow(sinf(Float(2 * .pi * ((x+0.5)/2))),2);
Надеюсь, это поможет!
Внешнее обрабатывает сбой даже при включении длинных путей к файлам в кавычки? Это может быть более простым методом, если внешние поддержки приложений это.
например.
myExternalApp "C:\Documents And Settings\myUser\SomeData.file"
Если Вы готовы начать обращаться к Windows API functions, то GetShortPathName () и GetLongPathName () обеспечивают эту функциональность.
См. http://csharparticles.blogspot.com/2005/07/long-and-short-file-name-conversion-in.html
const int MAX_PATH = 255;
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetShortPathName(
[MarshalAs(UnmanagedType.LPTStr)]
string path,
[MarshalAs(UnmanagedType.LPTStr)]
StringBuilder shortPath,
int shortPathLength
);
private static string GetShortPath(string path) {
var shortPath = new StringBuilder(MAX_PATH);
GetShortPathName(path, shortPath, MAX_PATH);
return shortPath.ToString();
}