小编deh*_*len的帖子

将Storyboard从iPhone转换为iPad

我有一个iPhone有故事板的应用程序.现在我也想提供一个iPad应用程序.所以我问我是否有一个功能可以帮助我将iPhone故事板转换为iPad故事板.

再具体一点:

是否有类似的功能或只有手动方式?

iphone xcode storyboard ipad ios

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

带有遮罩层的UIVisualEffectView

我试图模糊MKMapView,同时在它上面显示一个圆形面具.为了更好地形象化我的意思,您可以找到我当前所附状态的图像:

当前状态

这显示了我想要的几乎,但背景(地图)应该模糊,这不是这张图片中的情况.我尝试使用UIVisualEffectView,但似乎我在那里做错了.这是我尝试过的:

func createOverlay(at: CGPoint) {
    var blur: UIView!
    blur = UIVisualEffectView (effect: UIBlurEffect (style: UIBlurEffectStyle.dark))

    blur.frame = self.mapView.frame
    blur.isUserInteractionEnabled = false
    self.mapView.addSubview(blur)

    let circleSize: CGFloat = 200

    let path = UIBezierPath (
        roundedRect: blur.frame,
        cornerRadius: 0)

    let circle = UIBezierPath (
        roundedRect: CGRect (origin: CGPoint(x:at.x - circleSize/2, y: at.y-circleSize/2),
                             size: CGSize (width: circleSize, height: circleSize)), cornerRadius: circleSize/2)

    path.append(circle)
    path.usesEvenOddFillRule = true

    let maskLayer = CAShapeLayer()
    maskLayer.path = path.cgPath
    maskLayer.fillRule = kCAFillRuleEvenOdd

    let borderLayer = CAShapeLayer()
    borderLayer.path = circle.cgPath
    borderLayer.strokeColor …
Run Code Online (Sandbox Code Playgroud)

ios swift uivisualeffectview

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

Swift编译器性能

我在Swift代码中得到了这个语句,它在playground中执行时产生错误:

let colors: [String: [Float]] = ["skyBlue" : [240.0/255.0, 248.0/255.0, 255.0/255.0,1.0], 
"cWhite" : [250.0/255.0, 250.0/255.0, 250.0/255.0, 1.0]]
Run Code Online (Sandbox Code Playgroud)

错误是: expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions

然后我将数组元素类型更改为Double正常工作.

但是我问自己为什么会这样?正如我所说,使用Double它工作得很好.所以我的猜测是Swift试图猜测类型,因此Double在这个例子中效果更好Float.

performance swift

11
推荐指数
1
解决办法
145
查看次数

使用react-native iOS应用程序缩短编译时间

我目前正在开发一个反应原生的iOS应用程序.在开发过程中,我注意到应用程序的编译时间非常慢.我得到了一个CI连接,大致如下:

  • 清理应用程序工作区的git checkout
  • 运行单元测试
  • 运行UI测试构建应用程序

由于这是一个干净的结账,应用程序总是重新编译所有与React.xcodeproj一起提供的反应静态库,如libyoga.a,libReact.a等.这意味着一个干净的CI构建大致需要大约8分钟来构建所有反应依赖性(~4min*2,因为UI测试目标再次重建React).

我想知道是否有可能加快编译时间.我提出了以下想法,但需要你的建议告诉我它是否有用或者我是否在错误的轨道上.

  • 编译iphoneos和iphonesimulator的所有静态库
  • 通过lipo将它们放在一个文件中
  • 将它们移动到一个文件夹
  • 将该文件夹放入版本控制
  • 将该文件夹中的库链接到Xcode项目中

这样,只有在我更新package.json中的react-native版本时,才需要构建一组新的静态库,对吗?

我想到的另一个想法是建立一个反应原生的动态框架.框架只能构建一次,然后通过carthage或手动添加到应用程序中.动态框架将链接所有反应静态库并将正确的标头添加到标头搜索路径.

有没有人可以给我一个提示,如果这可以工作或有一个想法如何改进构建架构,以加快编译时间?

xcode linker static-libraries ios react-native

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

在iPhone上将经度/纬度转换为x/y

我在UIImageView中显示图像,我想将坐标转换为x/y值,以便我可以在此图像上显示城市.这是我根据我的研究尝试的:

CGFloat height = mapView.frame.size.height;
CGFloat width = mapView.frame.size.width;


 int x =  (int) ((width/360.0) * (180 + 8.242493)); // Mainz lon
 int y =  (int) ((height/180.0) * (90 - 49.993615)); // Mainz lat


NSLog(@"x: %i y: %i", x, y);

PinView *pinView = [[PinView alloc]initPinViewWithPoint:x andY:y];

[self.view addSubview:pinView];
Run Code Online (Sandbox Code Playgroud)

这给了我167作为x和y = 104但这个例子应该有x = 73和y = 294的值.

mapView是我的UIImageView,只是为了澄清.

所以我的第二次尝试是使用MKMapKit:

CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(49.993615, 8.242493);
MKMapPoint point = MKMapPointForCoordinate(coord);
NSLog(@"x is %f and y is %f",point.x,point.y);
Run Code Online (Sandbox Code Playgroud)

但这给了我一些非常奇怪的值:x = 140363776.241755,y是91045888.536491.

所以你知道我必须做些什么才能使这个工作吗?

非常感谢!

iphone math latitude-longitude coordinates ios

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

获取在Xcode 4中工作的Shortcut Recorder

有没有办法在Objective-C中有一个快捷方式记录器,用户可以选择快捷方式?

我试过DDHotKey,这对我有用,但是对于这个库,用户无法自己选择快捷方式.

然后我尝试实现了Shortcut Recorder,但是由于ibplugin,我只能使用Xcode 3.

那么有没有办法在Xcode 4中有这样的东西?:在此输入图像描述

提到的图书馆:

DDHotKey:在这里

快捷方式记录器:这里

xcode hotkeys shortcut recorder

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

如何从java程序打印文件的任何风格(文本,文字,PDF格式,图像等)?

我需要一个Java程序将任何文件打印到默认/选定的打印机(实际上我使用RICOH通用PostScript打印机将任何文件打印到PostScript文件).此外,我将从打印机读取该流并将其写入PostScript文件.我已经尝试过谷歌下面的示例程序了,但是当我收到PostScript文件时,它是以某种未知的格式.

public class PrintToFileWithJava {
    private static boolean jobRunning = true;

public static void main(String[] args) throws Exception {
       InputStream is = new BufferedInputStream(new FileInputStream("Authentication in Hive.pdf"));

  DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
  PrintService service = PrintServiceLookup.lookupDefaultPrintService();
  DocPrintJob printJob = service.createPrintJob();
  printJob.addPrintJobListener(new JobCompleteMonitor());

  Doc doc = new SimpleDoc(is, flavor, null);
  PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
  printJob.print(doc, attributes);

  while (jobRunning) {
    Thread.sleep(1000);
  }
 System.out.println("Exiting app");
  is.close();
}

private static class JobCompleteMonitor extends PrintJobAdapter {
        @Override
        public void printJobCompleted(PrintJobEvent jobEvent) {
            System.out.println("Job completed");
            jobRunning …
Run Code Online (Sandbox Code Playgroud)

java

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

突出显示鼠标光标下的 NSWindow


由于这是相当多的代码,如果有一个示例项目可以帮助您更好地理解当前问题,我制作了一个简单的示例项目,您可以在此处在 GitHub 上找到它:https : //github.com/dehlen/堆栈溢出


我想实现一些与 macOS 屏幕截图工具非常相似的功能。当鼠标悬停在窗口上时,该窗口应突出显示。但是,我遇到的问题只是突出显示用户可见的窗口部分。

这是该功能应该是什么样子的屏幕截图: 它应该是什么样子

然而,我目前的实现看起来像这样: 它看起来像什么

我当前的实现执行以下操作:

1. 获取屏幕上所有可见窗口的列表

static func all() -> [Window] {
        let options = CGWindowListOption(arrayLiteral: .excludeDesktopElements, .optionOnScreenOnly)
        let windowsListInfo = CGWindowListCopyWindowInfo(options, CGMainDisplayID()) //current window
        let infoList = windowsListInfo as! [[String: Any]]
        return infoList
            .filter { $0["kCGWindowLayer"] as! Int == 0 }
            .map { Window(
                frame: CGRect(x: ($0["kCGWindowBounds"] as! [String: Any])["X"] as! CGFloat,
                       y: ($0["kCGWindowBounds"] as! [String: Any])["Y"] as! CGFloat,
                       width: ($0["kCGWindowBounds"] as! [String: Any])["Width"] as! CGFloat,
                       height: ($0["kCGWindowBounds"] as! [String: Any])["Height"] …
Run Code Online (Sandbox Code Playgroud)

macos cocoa appkit swift

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

RxSwift过滤器变量数组

您好我正在尝试了解RxSwift库以编写更好的功能代码.

目前我陷入了一个非常基本的问题.可以说我得到了这种类型的变量Variable<[CiteModel?]>:

var allCites: Variable<[CiteModel?]> = Variable([])
var shownCites: Variable<[CiteModel?]> = Variable([])
Run Code Online (Sandbox Code Playgroud)

现在我想过滤allCites包含特定文本的数组中的所有引用并将它们添加到shownCites.

这是我试过,但它并没有编译,因为在我的过滤器块$0[CiteModel?] 不是 CiteModel?我所期望的那样.你能解释一下我做错了什么吗?

private func filterCitesByQuery(query: String) {
    self.shownCites = self.allCites.asObservable().filter {
        $0?.cite.containsString(query)
    }
}
Run Code Online (Sandbox Code Playgroud)

执行上述代码时出错:

Cannot assign value of type 'Observable<[CiteModel?]>' (aka 'Observable<Array<Optional<CiteModel>>>') to type 'Variable<[CiteModel?]>' (aka 'Variable<Array<Optional<CiteModel>>>')
Run Code Online (Sandbox Code Playgroud)

functional-programming ios swift rx-swift

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

使用蒸汽流来更新模型

我目前正在努力使用蒸汽/流利进行更新。我有一个这样的模型:

struct DeviceToken: PostgreSQLModel {
    var id: Int?
    var token: String
    var updatedAt: Date = Date()

    init(id: Int? = nil, token: String, updatedAt: Date = Date()) {
        self.id = id
        self.token = token
        self.updatedAt = updatedAt
    }
}

struct Account: PostgreSQLModel {
    var id: Int?
    let username: String
    let service: String
    ...
    let deviceTokenId: DeviceToken.ID

    init(id: Int? = nil, service: String, username: String, ..., deviceTokenId: DeviceToken.ID) {
        self.id = id
        self.username = username
        ....
        self.deviceTokenId = deviceTokenId
    }
}
Run Code Online (Sandbox Code Playgroud)

从客户端类似 …

swift vapor server-side-swift

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