小编Isu*_*uru的帖子

在Swift中循环添加文本

我需要追加一个字符串数组,最后得到一个字符串,以 UILabel下列格式显示.

Action1 | Action2 | Action3 | 措施4

for action in actions {

    actionLabel.text += "\(action.name) |"
}
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误.

'String?' is not identical to 'UInt8'.
Run Code Online (Sandbox Code Playgroud)

出现此错误的原因是什么?有没有其他方法可以实现这一目标?

谢谢.

arrays string append ios swift

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

无法让我的位置显示在iOS 8的Google地图中

我正在尝试在iOS 8的Swift项目中使用Google Maps for iOS.我添加了Objective-C桥接标头,并按照其文档中的说明添加了Google Maps SDK .我尝试了这个例子,一切正常.

我需要显示我当前的位置.我在iOS 8模拟器中设置了自定义位置的坐标,并修改了 StackOverflow应答中显示的代码.下面是它的Swift版本.

import UIKit
import Foundation

class MapViewController: UIViewController {

    @IBOutlet var mapView: GMSMapView!

    var firstLocationUpdate: Bool?

    override func viewDidLoad() {
        super.viewDidLoad()

        let camera = GMSCameraPosition.cameraWithLatitude(-33.86, longitude: 151.20, zoom: 12)
        mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
        mapView.settings.compassButton = true
        mapView.settings.myLocationButton = true

        mapView.addObserver(self, forKeyPath: "myLocation", options: .New, context: nil)

        dispatch_async(dispatch_get_main_queue(), { () -> Void in
            self.mapView.myLocationEnabled = true
        })
        println(mapView.myLocation)
        view = mapView

        let marker = GMSMarker() …
Run Code Online (Sandbox Code Playgroud)

location google-maps ios swift ios8

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

带有UIBezierPath的CAShapeLayer

我想在这样的UITableView单元格中显示三角形视图.

在此输入图像描述

我设法使用吹码完成了这个.

import UIKit

class TriangleView: UIView {

    override func drawRect(rect: CGRect) {
        let width = self.layer.frame.width
        let height = self.layer.frame.height

        let path = CGPathCreateMutable()
        CGPathMoveToPoint(path, nil, 0, 0)
        CGPathAddLineToPoint(path, nil, width, 0)
        CGPathAddLineToPoint(path, nil, 0, height)
        CGPathAddLineToPoint(path, nil, 0, 0)
        CGPathCloseSubpath(path)

        let mask = CAShapeLayer()
        mask.frame = self.layer.bounds
        mask.path = path

        self.layer.mask = mask

        let shape = CAShapeLayer()
        shape.frame = self.bounds
        shape.path = path
        shape.fillColor = UIColor.clearColor().CGColor

        self.layer.insertSublayer(shape, atIndex: 0)
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在UIViews中搜索如何创建形状时,我发现你可以使用UIBezierPath它来做同样的事情.所以我尝试使用相同的东西复制UIBezierPath.

let path …
Run Code Online (Sandbox Code Playgroud)

drawing cashapelayer ios uibezierpath swift

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

从多个视图控制器接收委托方法调用

我有一个带有的应用SplitViewController。该MasterViewControllerUITableViewController。并且DetailViewControllerUIViewController带有的MapView

在此处输入图片说明

我正在调用API以获取事件列表。在tableView中,我想显示事件的名称和地址。在mapView中,我要标记这些事件的位置。

我有一个名为的类,DataLoader在其中调用API,解析JSON对象并创建Event对象并将它们成功放入数组中。

import Foundation
import SwiftyJSON

@objc protocol DataLoaderDelegate {
    func eventDataReceived(items: [Event]?, error: NSError?)
}

public class DataLoader {

    private let api = ApiClient()

    var delegate: DataLoaderDelegate?

    init() { }

    public func fetchEvents() {
        api.getEvents({ (data) -> Void in
            let json = JSON(data)
            self.processEventData(json["data"])
        }, failure: { (error) -> Void in
            println("Error fetching events: \(error?.localizedDescription)")
            self.delegate?.eventDataReceived(nil, error: error)
        })
    }

    private func …
Run Code Online (Sandbox Code Playgroud)

delegates uiviewcontroller uisplitviewcontroller ios swift

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

如何在Google地图Xcode上显示子视图或按钮

我试图在Google地图上添加一个按钮.我尽我所能,但没有任何人可以帮助我..在Xcode预览它显示在顶部但在运行应用程序后它来到谷歌地图.

运行app后的图片

运行app后的图片

它在XCODE中的外观

它在XCODE中的外观

地图编码

import UIKit
import GoogleMaps

class HomeViewController: UIViewController, CLLocationManagerDelegate {
    @IBOutlet weak var scrollView: UIScrollView!
    @IBAction func refreshLocation(sender: AnyObject) {
        locationManager.startUpdatingLocation()

    }
@IBOutlet weak var gMapView: GMSMapView!


let locationManager = CLLocationManager()




override func viewDidLoad() {
    super.viewDidLoad()
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation
    locationManager.requestAlwaysAuthorization()
  locationManager.startUpdatingLocation()
    self.scrollView.contentSize=CGSizeMake(320, 700)


            let camera = GMSCameraPosition.cameraWithLatitude(15.4989, longitude: 73.8278, zoom: 17)

            gMapView.camera = camera
            gMapView.myLocationEnabled = true

            self.view.addSubview(gMapView)
            let marker = GMSMarker()

            marker.map = self.gMapView

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

}

extension …
Run Code Online (Sandbox Code Playgroud)

xcode google-maps ios swift swift2

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

estimatedAssetCount返回错误的计数

我需要显示带有图像数量的相机胶卷相册.我正在使用以下代码来获取相机胶卷相册.

let smartCollections = PHAssetCollection.fetchAssetCollectionsWithType(.SmartAlbum, subtype: .SmartAlbumUserLibrary, options: nil)
smartCollections.enumerateObjectsUsingBlock { object, index, stop in
    if let collection = object as? PHAssetCollection {
        print(collection.estimatedAssetCount)
    }
}
Run Code Online (Sandbox Code Playgroud)

我在照片应用中的相机胶卷中只有28张图像.但该estimatedAssetCount属性返回值9223372036854775807!

这仅适用于OS创建的相册,如相机胶卷.对于用户创建的常规相册,将返回正确的值.我做错了什么或这是一个错误?

如果是,有没有其他方法来获得正确的图像计数?

count ios swift photokit phassetcollection

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

获取 UITextView 的内容高度

我使用这个名为ReadMoreTextView 的开源库来显示一堆文本。该库使我能够在显示文本摘录和显示全长内容之间切换(该按钮是我添加的普通 UIButton,而不是库)。

在此处输入图片说明 在此处输入图片说明

这按预期工作。

当我必须显示较少量的文本时,我的问题就出现了。如果我添加了一些不超过 UITextView 高度的内容,我想隐藏更多/更少切换按钮。所以我考虑采用完整的内容高度,如果它大于文本视图的高度,则显示切换按钮。

在上面的例子中,我添加了几个超出文本视图边界的长段落。文本视图的高度显示为 128。但内容高度也返回 128。有一个库特定的方法被调用boundingRectForCharacterRange,它应该返回内容高度也返回错误值(100)。

print("TEXTVIEW HEIGHT: \(textView.bounds.height)") // 128
print("CONTENT HEIGHT: \(textView.contentSize.height)") // 128

let rect = textView.layoutManager.boundingRectForCharacterRange(range: NSRange(location: 0, length: textView.text.count), inTextContainer: textView.textContainer)
print("TEXT HEIGHT: \(rect.height)") // 100
Run Code Online (Sandbox Code Playgroud)

我在图书馆的 Github 页面上打开了一个问题,但所有者要求在这里提问。

为什么内容高度返回错误值?

顺便说一下,这是我在上面的示例中使用的项目

height uitextview ios swift

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

将数据从 SwiftUI 传递到 UIKit

我是 SwiftUI 的新手,我一直在尝试如何在同一个应用程序中将 SwiftUI 和 UIKit 集成在一起。我用 SwiftUI 制作了一个简单的登录屏幕。

struct LoginView: View {
    
    var body: some View {
        VStack {
            LogoView()
            InputView(title: "Company Code")
            ButtonView(title: "Proceed")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我通过将该视图中的所有组件提取到单独的视图(LogoView、InputView、ButtonView)来使它们可重用。

struct LogoView: View {
    var body: some View {
        VStack {
            Image("logo")
            Text("Inventory App")
                .foregroundColor(.blue)
                .fontWeight(.bold)
                .font(.system(size: 32))
        }
    }
}

struct InputView: View {
    let title: String
    
    @State private var text: String = ""
    
    var body: some View {
        VStack(alignment: .leading) {
            Text(title)
                .foregroundColor(.gray)
                .fontWeight(.medium)
                .font(.system(size: 18))
            
            TextField("", text: …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui observableobject

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

使用HTML和CSS阻止UI

我正在写一个用户脚本.我想做的事情非常简单.我需要在脚本执行一些后台任务时阻止UI.我在另一个SO问题中看到了这个方法,我改变了一下以适合我.

检查这个小提琴.当您单击按钮时,它会覆盖UI.

现在,因为这将在网页上使用,我需要通过脚本将以下HTML部分注入网页.

<div id="blocker">
<div>Loading...<img src="http://www.socialups.com/static/images/fbinventory/ajax_loader.gif"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我是这样做的.

var blockUI = document.createElement("div");
blockUI.setAttribute("id", "blocker");
blockUI.innerHTML = '<div>Loading...<img src="http://www.socialups.com/static/images/fbinventory/ajax_loader.gif"></div>'
document.head.appendChild(blockUI);
Run Code Online (Sandbox Code Playgroud)

检查这个小提琴是否有明确的想法.

但它不起作用.我尝试了几种方法来解决问题,但无济于事.任何人都可以指出我在这里做错了什么?

谢谢.

PS - 我需要在不使用jQuery或库blockUI的情况下执行此操作.

html javascript css blockui userscripts

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

单击链接时意外页面向上滚动

我写了一个主要在iPad上查看的HTML页面.基本上它是一个FAQ列表,对每个问题都有悬停效果.要在ipad上启动悬停效果,我必须像这样放置一个虚拟链接.

<a href="#">The question?</a>
Run Code Online (Sandbox Code Playgroud)

这是一个对每个浏览器都有效的问题:当列表太长而你必须向下滚动时,当你点击页面底部的链接时,它会在启动悬停效果时跳回到顶部.我为演示目的做了一个小提琴:

http://jsfiddle.net/SWXHR/1/

向下滚动并单击最后一个链接时,页面将跳转到顶部.

问题:如何在使用虚拟链接时阻止页面跳到顶部?

html hyperlink

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