我需要追加一个字符串数组,最后得到一个字符串,以 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)
出现此错误的原因是什么?有没有其他方法可以实现这一目标?
谢谢.
我正在尝试在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) 我想在这样的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) 我有一个带有的应用SplitViewController。该MasterViewController是UITableViewController。并且DetailViewController是UIViewController带有的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) 我试图在Google地图上添加一个按钮.我尽我所能,但没有任何人可以帮助我..在Xcode预览它显示在顶部但在运行应用程序后它来到谷歌地图.
运行app后的图片
它在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) 我需要显示带有图像数量的相机胶卷相册.我正在使用以下代码来获取相机胶卷相册.
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创建的相册,如相机胶卷.对于用户创建的常规相册,将返回正确的值.我做错了什么或这是一个错误?
如果是,有没有其他方法来获得正确的图像计数?
我使用这个名为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 页面上打开了一个问题,但所有者要求在这里提问。
为什么内容高度返回错误值?
顺便说一下,这是我在上面的示例中使用的项目。
我是 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) 我正在写一个用户脚本.我想做的事情非常简单.我需要在脚本执行一些后台任务时阻止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的情况下执行此操作.
我写了一个主要在iPad上查看的HTML页面.基本上它是一个FAQ列表,对每个问题都有悬停效果.要在ipad上启动悬停效果,我必须像这样放置一个虚拟链接.
<a href="#">The question?</a>
Run Code Online (Sandbox Code Playgroud)
这是一个对每个浏览器都有效的问题:当列表太长而你必须向下滚动时,当你点击页面底部的链接时,它会在启动悬停效果时跳回到顶部.我为演示目的做了一个小提琴:
向下滚动并单击最后一个链接时,页面将跳转到顶部.
问题:如何在使用虚拟链接时阻止页面跳到顶部?
ios ×8
swift ×8
google-maps ×2
html ×2
append ×1
arrays ×1
blockui ×1
cashapelayer ×1
count ×1
css ×1
delegates ×1
drawing ×1
height ×1
hyperlink ×1
ios8 ×1
javascript ×1
location ×1
photokit ×1
string ×1
swift2 ×1
swiftui ×1
uibezierpath ×1
uitextview ×1
userscripts ×1
xcode ×1