我想格式化CLPlacemark为字符串.
众所周知的方法是使用,ABCreateStringWithAddressDictionary但它在iOS 9中已被弃用.警告告诉我使用CNPostalAddressFormatter.
但是,CNPostalAddressFormatter只能格式化CNPostalAddress.没有办法正确转换CLPlacemark为CNPostalAddress; 仅这3个性质通过共享CLPlacemark和CNPostalAddress:country,ISOcountryCode,和postalCode.
那么我应该如何格式化CLPlacemark为现在的字符串?
我想自动填写用户的地址,与google api在此链接中提供的地址相同:
https://developers.google.com/maps/documentation/javascript/places-autocomplete?hl=en
如何使用Apple地图套件实现相同的功能?
我试过使用Geo Coder,我写了这个例子:
@IBAction func SubmitGeoCode(sender: AnyObject) {
let address = "1 Mart"
let coder = CLGeocoder()
coder.geocodeAddressString(address) { (placemarks, error) -> Void in
for placemark in placemarks! {
let lines = placemark.addressDictionary?["FormattedAddressLines"] as? [String]
for addressline in lines! {
print(addressline)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然而,结果非常令人失望.
任何可用于实现此类功能的Apple API,或者我应该使用google api?
谢谢
我正在努力弄清楚如何使两个物体的边距成比例.如果我在Xcode上选择宽高比,它可以让我选择调整物体比例屏幕高度的高度.那不是我的情况.我希望按钮和屏幕底部之间的边距与屏幕高度成比例.我希望使用Xcode"无代码"来完成它.
非常感谢您的支持.
谢谢
亲爱,
我想限制用户仅从GMSPlacepicker中选择地点,而不是让他们选择"选择此位置",只发送没有地名的Long&Lat.
所以我的问题很热,删除GMSPlacePicker对话框中的"选择此位置"按钮.
这就是我的意思..
这是代码写的..
@IBAction func LocationChooserPressed(_ sender: AnyObject) {
let center = CLLocationCoordinate2DMake((locationManager.location?.coordinate.latitude)!, (locationManager.location?.coordinate.longitude)!)
let northEast = CLLocationCoordinate2DMake(center.latitude + 0.001, center.longitude + 0.001)
let southWest = CLLocationCoordinate2DMake(center.latitude - 0.001, center.longitude - 0.001)
let viewport = GMSCoordinateBounds(coordinate: northEast, coordinate: southWest)
let config = GMSPlacePickerConfig(viewport: viewport)
placePicker = GMSPlacePicker(config: config)
placePicker?.pickPlace( callback: { (place: GMSPlace?, error: Error?) -> Void in
if let error = error {
print("Pick Place error: \(error.localizedDescription)")
return
}
if let place = place {
self.nameLabel.text = …Run Code Online (Sandbox Code Playgroud) 好的我有这个案子,
我为iphone 8设计了这个屏幕
正如你在这里看到的那样,通过在此视图和底部布局指南的顶部之间约束0px,我将8px绿色视图固定到超视图的底部.它可以在所有手机上正常工作除了新的iPhone X,发生这种情况:
那不是我想要的行为.我希望像其他iPhone一样,以0边距钉在底部.
是否有使用故事板的解决方案?请仅使用故事板发布解决方案.我知道我可以通过编程方式完成.我想这在故事板上应该很容易.
谢谢
我在SwiftUI中实现列表视图。我试图解决的问题是使任何其他单元格或父视图之间没有空间的单元格。
因此,在此屏幕截图中,您可以看到每个单元格之间都有一个空间,手机边缘也有空间,我想删除该空间。
struct FlickrView : View {
var flickrResponse: [FlickrResponse]
var body: some View {
List(flickrResponse) { item in
FlickrImageCell(response: item)
}
}
}
struct FlickrImageCell : View {
var response: FlickrResponse
var body: some View {
return ZStack(alignment: .topLeading) {
Image(uiImage: response.image ?? UIImage())
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: nil, height: 100.0, alignment: .center)
.clipShape(Rectangle())
.padding(0)
Text(response.title).fontWeight(.medium).multilineTextAlignment(.center)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经试过这个修饰符:
.padding(EdgeInsets(top: 0, leading: -20, bottom: 20, trailing: -20))
Run Code Online (Sandbox Code Playgroud)
但是这种方法有两个问题:首先,我认为编写文字负值并不方便。其次,底部填充不能使用任何值。
有什么建议吗?
我正在尝试使用 decodeable 解析一个看起来像这样的 json:
{
"count": 1,
"results": [
{
"title": 1,
"content": "Bla"
} ]
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我不想创建一个具有计数属性的类只是为了能够使用解码器。我只想解析我不关心计数的结果部分。
所以我的问题是,可以 decodeable.decode 以某种方式只解析结果 json 的一部分。我的意思是某个关键路径而不是整个 json ?我想使用 Decodable 来做到这一点。
简而言之,我不想要这个:
class IncidentWrapper: Codable{
var count: Int
var incident: [Incident]
}
Run Code Online (Sandbox Code Playgroud)
我会想象的是有这个:
decodable.decode([Incident].self, from: response.data, forKey: "results")
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在尝试使用Boxing实现 MVVM 架构模式。我只是通过添加拳击类来完成它:
class Dynamic<T> {
typealias Listener = (T) -> Void
var listener: Listener?
func bind(listener: Listener?) {
self.listener = listener
}
func bindAndFire(listener: Listener?) {
self.listener = listener
listener?(value)
}
var value: T {
didSet {
listener?(value)
}
}
init(_ v: T) {
value = v
}}
Run Code Online (Sandbox Code Playgroud)
然后在 ViewController 中我引用了一个 ViewModel,这是我的 View Controller:
class SignUpViewController: UIViewController {
// UI Outlets
@IBOutlet weak var emailLoginTextField: FloatLabelTextField!
@IBOutlet weak var passwordLoginTextField: FloatLabelTextField!
var viewModel = AuthenticationViewModel()
override func …Run Code Online (Sandbox Code Playgroud) 我正在尝试建立登录视图时正在探索SwiftUI,现在我遇到了问题
这是我要实现的目标:
如您所见,我已经达到了这一点,但是我不喜欢我的实现
struct ContentView : View {
@State var username: String = ""
var body: some View {
VStack(alignment: .leading) {
Text("Login")
.font(.title)
.multilineTextAlignment(.center)
.lineLimit(nil)
Text("Please")
.font(.subheadline)
HStack {
VStack (alignment: .leading, spacing: 20) {
Text("Username: ")
Text("Password: ")
}
VStack {
TextField($username, placeholder: Text("type something here..."))
.textFieldStyle(.roundedBorder)
TextField($username, placeholder: Text("type something here..."))
.textFieldStyle(.roundedBorder)
}
}
}.padding()
}
}
Run Code Online (Sandbox Code Playgroud)
因为为了使在文本框的中间正好对准用户名和密码的文本,我不得不把字面间距值20的VStack,我不喜欢,因为最有可能它不会在不同的设备尺寸的工作。
有人看到一种更好的方法来达到相同的结果吗?
谢谢
我有这种情况,我有一个静态变量,它在应用程序的某个地方改变它的值,导致一个错误.没有详细介绍代码.我需要知道是否有办法观察这个变量.因为在Xcode上每次尝试观察变量它都会给我这个错误"错误:在这个框架中找不到名为'backend'的变量".
所以我的问题是,是否有任何解决方法可以知道哪个地方确实改变了这个变量的值.
除了使用手表之外的任何东西,因为由于某种原因它不能用于上述错误.