目前,我的swift应用程序具有一个带有各种注释的mapview,当用户从地图上的各种注释中走来时,总是不能向北锁定吗?我希望地图转向他们正在走的方向,而不是始终指向北。
这是我当前的updatelocation函数
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let location = locations[0]
let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude)
let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, noteTime.span)
map.setRegion(region, animated: true)
self.map.showsUserLocation = true
map.tintColor = UIColor(red:0.19, green:0.69, blue:0.73, alpha:1.0)
}
Run Code Online (Sandbox Code Playgroud)
我应该在这里声明吗?
问题:
我希望抑制对用户位置的触摸以阻止“我的位置”注释
我一直在寻找解决方案一段时间了,经过广泛的在线研究,我什至还没有找到这个问题。
我创建了一个用 Swift 编写的移动应用程序,其中有关于 MKMap 视图的注释。我遇到的问题是当用户选择他们附近的笔记时,它有时会显示此“我的位置”注释,以显示正确的笔记。
我确定有办法阻止这个注释,我写了一个声明来帮助我识别弹出窗口
if (((view.annotation?.title)!)! == "My Location"){
print("wrong annotation selected")
Run Code Online (Sandbox Code Playgroud)
有没有办法禁用对用户位置图标的触摸?
我已经使用改变了圆圈的颜色
map.tintColor = UIColor(red:0.19, green:0.69, blue:0.73, alpha:1.0)
Run Code Online (Sandbox Code Playgroud)
所以我在想可能有一个
map.UserLocationTouch = false
Run Code Online (Sandbox Code Playgroud)
或类似的规定。
我正在尝试写入我创建的报价数据库。如果用户选择“收藏夹”按钮,它将在SQLITE数据库的“收藏夹”列中添加1(或true)值。由于某些原因,我无法写入数据库,也无法执行以下代码:
@IBAction func addFavorite(_ sender: Any) {
var configuration = Configuration()
configuration.readonly = false
let dbPath = Bundle.main.path(forResource: "data", ofType: "db")!
let dbQueue = try! DatabaseQueue(path: dbPath, configuration: configuration)
try! dbQueue.inDatabase { db in
try db.execute("""
UPDATE quotes SET favorite = 1 WHERE quote = ?;
""",
arguments: [quoteLabel.text])
}
Run Code Online (Sandbox Code Playgroud)
我希望将结果写入数据库,并将1放入“喜欢的”列中,但不幸的是事实并非如此。我收到此错误:
线程1:致命错误:“尝试!” 表达式意外引发错误:带有语句
UPDATE quotes SET favorite = 1 WHERE quote = ?参数的SQLite错误8 [“节制是原因的更强更清晰的解释。”]:尝试编写只读数据库
我已经尝试chmod 755了数据库,但是也没有用。我想念什么吗?
swift ×3
annotations ×1
database ×1
dictionary ×1
grdb ×1
ios ×1
location ×1
rotation ×1
sqlite ×1
xcode ×1