(看看## Edit ##) 我是初学者。我使用谷歌但无法找到解决我问题的方法。
如何在tableView中更改MapView的高度?
我的故事板看起来像: click here I cant post pictures
我可以改变我想要的MKMapView的大小但是没有改变"在真实/模拟器中#34;。
我尝试用以下方法更改单元格的大小:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if(indexPath.row == 0) {
return 500
}
return 75.0
}
但是indexPath.row = 0是第一个条目"名称:Test"
有人可以解释为什么我不能改变大小?如何更改尺寸?
感谢您的帮助。
我尝试了两个不同的单元格(" Map Cell"" listAllBakeries")现在它可用于大小。
当我点击一个条目时,地图单元格"" Map Cell"但是在" listAllBakeries"。 More than one Map
代码:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
//CODE TO BE RUN ON CELL TOUCH
//get the Location with latitude and longitude
var location = CLLocationCoordinate2D(latitude: latitude[indexPath.item], longitude: longitude[indexPath.item])
//resolution
var span = MKCoordinateSpanMake(0.003, 0.003)
var region = MKCoordinateRegion(center: location,span:span)
//here is the mistake
let cell2:ListPlacesTableViewCell = tableView.dequeueReusableCellWithIdentifier("MapCell", forIndexPath: indexPath) as! ListPlacesTableViewCell
//some Text about the Place
var annotation = MKPointAnnotation()
annotation.coordinate = location
annotation.title = namesBakeries[indexPath.item]
annotation.subtitle = "some Text"
//Zooming inside the map
cell2.Map.setRegion(region, animated: true)
cell2.Map.addAnnotation(annotation)
}
我真的不明白这一点。我使用正确的标识符(MapCell),但部分/行是错误的。我该如何使用正确的部分?
以下是我填写行/部分的代码
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if(indexPath.section == 0) {
let cell2:ListPlacesTableViewCell = tableView.dequeueReusableCellWithIdentifier("MapCell", forIndexPath: indexPath) as! ListPlacesTableViewCell
//insert MapStuff
//addAnnotations
//MapStuff
return cell2
} else {
//Standard-Labels with text
let cell:ListPlacesTableViewCell = tableView.dequeueReusableCellWithIdentifier("listAllBakeries", forIndexPath: indexPath) as! ListPlacesTableViewCell
cell.nameLabel?.text = namesBakeries[indexPath.row]
cell.adressLabel?.text = "Test 2"
return cell
}
}
感谢您的帮助
(我很抱歉我的英语,但这不是我的母语)。
答案 0 :(得分:0)
看起来您的地图位于uiTableView上方,而不是表格中的单独原型单元格。
使用2个原型单元格设置uiTableView,然后将地图放在第一个。
然后,正如您所做的那样,您可以测试indexpath.row的值。
答案 1 :(得分:0)
好的,我发现了。
诀窍是始终更新相同的单元格。 我定义了一个数组。然后将我的Cell2保存在此数组中,并使用此Object更新我的地图。 (我的英语很糟糕,我知道,也许我的代码会提供更多信息。)
def info(self, event):
self.win = win = tk.Toplevel(self)
texto_info='''b is basis of rectangle
(a) will be (l) if (b) is lowest side
or (h) if (b) is the highest side of
the rectangle'''
tk.Label(win, text= texto_info).pack()
x= win.winfo_pointerx()+100
y= win.winfo_pointery()
win.geometry('+%d+%d'%(x,y))
win.overrideredirect(1)
def info_close(self, event):
self.win.destroy()
感谢您的帮助