您可能知道Apple最近宣布推出iOS 6,并附带自己的新地图.我刚刚在新版iOS上运行我的应用程序,它在MKMapView新的Apple Maps中用作标准地图.它可能很棒,但我的应用程序依赖于谷歌地图,因为我使用他们的数据和路线.有什么方法我仍然可以使用谷歌地图而不是苹果自己的版本?
我正在使用quickdialog作为表单,我正在尝试实现刷卡删除,并且不知道我将如何做到这一点.有谁能够帮我?
好吧,我对线程有点新意,所以我有这个问题.我试图从Facebook获取朋友的信息,我不想在主线程上这样做.但由于某种原因,当请求不在主线程上时,回调永远不会被调用,我不知道为什么!
我有一个包含我朋友的所有ID的数组,并循环遍历这个数组,并创建一个自定义类Friend的对象(它获取我需要的所有信息)和每个ID.我将此对象添加到数组中.这个朋友对象向Facebook发出请求并处理响应以获取我想要的数据.
这是代码:
dispatch_async(dispatch_get_global_queue(0, 0), ^(void) {
[self getFBFriendsInfo];
});
-(void)getFBFriendsInfo{
if (friendsInfoArray) {
[friendsInfoArray removeAllObjects];
}
else{
friendsInfoArray =[[NSMutableArray alloc]init];
}
for (int i=0; i<[UDID count]; i++) {
NSString *udid = [UDID objectAtIndex:i];
FriendsInfo *friend =[[FriendsInfo alloc] initWithFacebook:facebook andUdid:udid];
[friendsInfoArray addObject:friend];
[friend release];
}
dispatch_async(dispatch_get_main_queue(), ^(void) {
[delegate friendsInfosAvailable:friendsInfoArray];
});
Run Code Online (Sandbox Code Playgroud)
}
在我的自定义类中我这样做:
[facebook requestWithGraphPath:udid andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
有了这个回调从来没有被调用过!只有当我在主线程上执行请求时它才有效:
dispatch_async(dispatch_get_main_queue(), ^(void) {
[facebook requestWithGraphPath:udid andDelegate:self];
});
Run Code Online (Sandbox Code Playgroud) 在tableview中,我在每个单元格上都有UILongPressGestureRecognizer这样的内容:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(TableCellLongPressed:)];
longPress.minimumPressDuration = 0.5f;
[cell addGestureRecognizer:longPress];
[longPress release];
Run Code Online (Sandbox Code Playgroud)
现在我确实有以下问题我希望用户能够重新排列tableview中的单元格,所以我有一个按钮,将tableView设置为EditMode,如下所示:
[self.myTableView setEditing:!self.myTableView.editing animated:YES];
Run Code Online (Sandbox Code Playgroud)
现在当用户试图拖动一个单元并且没有将它拖得足够远时,longPress会激活他的动作,这对用户来说非常烦人,导致另一个视图被推动.如何暂停或禁用UILongPressGestureRecognizertableView在EditMode中的时间?
我正在尝试使用动态名称访问对象的属性...这可能吗?
喜欢在javascript中:
var foo = 'bar';
appr.templates[foo];
Run Code Online (Sandbox Code Playgroud)
想法是访问 appr.templates.bar
我想隐藏并显示导航栏,如照片应用程序中的那个,但不会丢失MKMapView的功能.用户应该仍然可以双击缩放,捏合和缩放,并能够选择注释.
我尝试过:
UITapGestureRecognizer* tapRec = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(hideBar:)];
[self.myMKMapView addGestureRecognizer:tapRec];
[tapRec release];
Run Code Online (Sandbox Code Playgroud)
但是,用户不能再选择注释了!它也隐藏了双击.
有任何想法吗 ?
好吧,我正在寻找这个错误,因为2个小时,我只是想弄清楚,请帮助我.我有以下情况我有2个viewcontroller.一个将另一个呈现为类似的模态.
SearchViewController *searchViewController = [[SearchViewController alloc]init];
[searchViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
searchViewController.delegate = self;
searchViewController.senderTag = [sender tag];
[self presentModalViewController:searchViewController animated:YES];
[searchViewController release];
Run Code Online (Sandbox Code Playgroud)
在我的searchviewcontroller中,我在.h文件中执行此操作
BSKmlResult *selectedAirport;
@property (nonatomic, retain) BSKmlResult *selectedAirport;
Run Code Online (Sandbox Code Playgroud)
在.m文件中我合成它,然后像那样设置它
selectedAirport = [self.airportList objectAtIndex:indexPath.row];
Run Code Online (Sandbox Code Playgroud)
然后在这里发布
- (void)dealloc {
[selectedAirport release];
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
在我的SearchViewController的委托方法中,它在第一个viewcontroller中实现,我也提供了SearchViewController我有以下内容
if (controller.selectedAirport) {
if (departureAirport) {
[departureAirport release];
}
departureAirport = [controller.selectedAirport copy];
}
[self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
我缩小了错误发生的位置,它位于我的SearchViewController [selectedAirport release]的dealloc中;
但我无法弄清楚我的错误在哪里请帮助
嗨,我有以下问题!我在我的MKMapView中添加了很多叠加层!例如,我添加了150个叠加层,但由于某些原因,并非所有叠加层都显示出来!我知道mapView:viewForOverlay:被召唤150次.我发现如果我将其添加到:[NSThread sleepForTimeInterval:1]创建所有叠加层的方法中,所有叠加层都会显示出来.那么叠加是否会被快速添加?或者可能是什么问题?
所有叠加都是在这样的后台线程中创建的!
MKPolyline* routeLine;
....
....
dispatch_async(dispatch_get_main_queue(), ^{
[self.myMKMapView addOverlay:routeLine];
});
Run Code Online (Sandbox Code Playgroud)
这就是 mapView:viewForOverlay:
- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
MKOverlayView* overlayView = nil;
MKPolylineView * rLV = [[[MKPolylineView alloc] initWithPolyline:overlay]autorelease];
rLV.fillColor = [UIColor blueColor];
rLV.strokeColor = [UIColor blueColor];
rLV.lineWidth = 1;
rLV.alpha = 0.5;
overlayView = rLV;
return overlayView;
}
Run Code Online (Sandbox Code Playgroud) iphone ×8
objective-c ×7
mkmapview ×3
cocoa-touch ×1
facebook ×1
google-maps ×1
ios6 ×1
long-press ×1
mkoverlay ×1
overlay ×1
quickdialog ×1
swipe ×1
tap ×1
uitableview ×1