我有几个注释想要添加到我的MKMapView(它可以是0-n项,其中n通常是5左右).我可以添加注释,但我想调整地图大小以适应屏幕上的所有注释,我不知道如何做到这一点.
我一直在看,-regionThatFits:但我不太清楚如何处理它.我会发布一些代码来展示我到目前为止所拥有的内容.我认为这应该是一个通常很简单的任务,但到目前为止我对MapKit感到有些不知所措.
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
location = newLocation.coordinate;
//One location is obtained.. just zoom to that location
MKCoordinateRegion region;
region.center = location;
//Set Zoom level using Span
MKCoordinateSpan span;
span.latitudeDelta = 0.015;
span.longitudeDelta = 0.015;
region.span = span;
// Set the region here... but I want this to be a dynamic size
// Obviously this should be set after I've added my annotations
[mapView setRegion:region animated:YES];
// Test data, using these as annotations for …Run Code Online (Sandbox Code Playgroud) 使用以下代码我得到text.label但不是detailTextLabel.text.NSLog正确显示.
cell.textLabel.text = [eventLabels objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [eventFields objectAtIndex:indexPath.row]];
NSLog(@"%@", [eventFields objectAtIndex:indexPath.row]);
Run Code Online (Sandbox Code Playgroud)
我也试过......
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@", [eventFields objectAtIndex:indexPath.row]];
Run Code Online (Sandbox Code Playgroud)
我之前没有遇到任何问题.有什么建议?
约翰
我正在寻找在Mac上构建一个带有后端守护程序进程的Cocoa应用程序(可能只是一个大多数无头的Cocoa应用程序),以及在本地运行的0个或更多"客户端"应用程序(尽管我可能会这样做)也支持远程客户端;远程客户端只能是其他Mac或iPhone OS设备).
传递的数据将是相当简单的,大多数只是文本和命令(我猜想无论如何都可以表示为文本),也可能是偶尔的小文件(可能是图像).
我已经看了几个方法,但是我不确定哪个方法对于手头的任务来说"最好".我考虑过的事情:
NSConnection:我无法弄清楚这个类甚至做了什么,但我已经在一些IPC搜索结果中读到了它我确信有些东西我不见了,但我很惊讶地发现这个话题缺乏资源.
我很难用Interface Builder和NSViewController来加载视图.
我的目标是拥有一个符合以下描述的视图:顶部的顶部栏(如工具栏但不完全)跨越整个视图宽度,下面是第二个"内容视图".该复合视图由我的NSViewController子类拥有.
为此使用Interface Builder是有意义的.我创建了一个视图笔尖,并在其中添加了两个子视图,将它们正确放置(使用顶部栏和内容视图).我已经准备File's Owner好MyViewController,并连接插座等.
我希望加载的视图(条形图和内容)也在它们自己的笔尖中(这可能是让我沮丧的),并且这些笔尖将其自定义类设置为适用的相应NSView子类.我不确定要设置什么File's Owner(我猜MyController它应该是他们的主人).
唉,当我初始化一个MyViewController实际上没有我的笔尖的实例时.我已经正确地将它添加到我的Window的contentView(我已经检查过了),实际上,有些东西是加载的.也就是说,awakeFromNib会被发送到条形图,但它不会显示在窗口中.我想我肯定有一些电线穿过某处.也许有人可以帮助减轻我的一些挫败感?
编辑一些代码来显示我正在做的事情
当应用程序完成启动时,从应用程序委托中加载控制器:
MyController *controller = [[MyController alloc] initWithNibName:@"MyController" bundle:nil];
[window setContentView:[controller view]];
Run Code Online (Sandbox Code Playgroud)
然后在我的initWithNibName中,我现在不做任何事情,而是打电话给super.
我在iPad应用程序中显示全屏电影时遇到了很多麻烦,然后允许用户使用完成按钮或播放器控件上的"取消全屏"按钮来解除它.
最初我MPMoviePlayerViewController用于电影演示,但我没有从其MPMoviePlayerController对象接收进入/退出全屏通知,所以我自己切换到了.
我可以让电影看起来是全屏的(尽管过渡很简陋)但是当按下"完成"或"非全屏"按钮时,播放器不会采取任何动作.我在下面发布了我的代码:
- (void)startPlayingMovieWithURLString:(NSString *)movieURLString {
// I get all of these callbacks **EXCEPT** the "willExitFullScreen:" callback.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterFullScreen:) name:MPMoviePlayerWillEnterFullscreenNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willExitFullScreen:) name:MPMoviePlayerWillExitFullscreenNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didFinishPlayback:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
[self.moviePlayerController setContentURL:someExistingURL];
// "self" is a UIViewController subclass, and is presented as a "fullscreen" modal view controller from its parent
// I'm setting the movie player's view's frame to take up the full rectangle of my view controller, but really …Run Code Online (Sandbox Code Playgroud) 在横向模式下启动时,无法为我的iPad应用程序获取正确的界限.我在Info.plist文件中设置了正确的键,我的视图控制器在横向(和纵向,自然)中正确启动.
在我的applicationDidFinishLaunching:方法中,我在3秒延迟后调用选择器,并且该方法调用[[UIScreen mainScreen] applicationFrame],但它返回一个纵向框架(即高度>宽度).
有谁知道如何解决这一问题?它闻起来像是一个臭虫(如果是这样我将提交雷达),但如果它是预期的行为,它在哪里记录?
在集合论中,如果集合包含原始集合中的所有内容并且可能更多,则集合是超集.但是,子集不包含初始集的所有内容.
考虑到这一点,在大多数面向对象的编程语言中(我正在考虑Objective-C,但我知道Java和其他人也是如此),父类称为super类,任何继承自super的类都是叫做subclass.
这不是倒退吗?子类从其超类继承所有实例变量和方法之类的东西,因此它"包含"来自父类的所有内容,以及子类中添加的任何内容.这只是一个命名错误,还是故意的?如果是这样,为什么呢?
我正在尝试在Sinatra应用程序中编写基于JSON的Web API.我想POST一个JSON对象作为帖子正文(具有正确的内容类型集),但我正在努力.
在Cocoa中,我会做类似的事情
[mutableHTTPRequest setHTTPBody:dataRepresentationOfJSONObject];
Run Code Online (Sandbox Code Playgroud)
然后,设置为JSON的内容类型将HTTP主体作为JSON对象发布.我试图用jquery做这个.到目前为止,我能做的最好只是将JSON对象转换为正常的样式key=value&…样式的帖子,这不是我想要的.
我的Javascript:
var data = { "user" : "me!" };
$.ajax({
type: "POST",
url: "/api/user/create",
contentType: 'application/json',
data: data,
success: function(r) {
});
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何指示?我的目标是让我的Sinatra像下面这样做
post "/api/user/create" do
js = JSON.parse(request.body.read)
# do something with the js object… this works when POSTing from Cocoa
end
Run Code Online (Sandbox Code Playgroud) 我很难做到这一点.
我有一个UIScrollView,启用了分页.它由视图控制器(MainViewController)管理,每个页面由PageViewController管理,其视图作为scrollView的子视图添加到适当的偏移量.滚动是左右,适用于标准方向的iPhone应用程序.效果很好.基本上就像Apple提供的样本一样,也像iPhone提供的Weather应用程序一样.
但是,当我试图支持其他方向时,事情并不能很好地发挥作用.我用这种方法支持MainViewController和PageViewController中的每个方向:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
然而,当我旋转设备时,我的页面变得非常歪斜,并且有很多绘图故障,特别是如果只加载了一些页面,然后我旋转,然后滚动更多等等...非常凌乱.
我告诉我的观点是支持自动调整大小
theView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
Run Code Online (Sandbox Code Playgroud)
但无济于事.它似乎只会拉伸和歪曲我的观点.
在我的MainViewController中,我添加了这一行,试图调整我所有页面的视图:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * ([self.viewControllers count]), self.scrollView.frame.size.height);
for (int i = 0; i < [self.viewControllers count]; i++) {
PageViewController *controller = [self.viewControllers objectAtIndex:i];
if ((NSNull *)controller == [NSNull null])
continue;
NSLog(@"Changing frame: %d", i);
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * i;
frame.origin.y = 0;
controller.view.frame = frame;
}
}
Run Code Online (Sandbox Code Playgroud)
但它没有太多帮助(因为我懒得加载视图,所以当执行时不一定都会加载它们).
有什么方法可以解决这个问题吗?
cocoa-touch objective-c uiscrollview uiinterfaceorientation ios
这是我的设置:
Stat.Stat在自己的类中使用代码(这个框架被调用Dyn).静态库和这个框架在同一个Xcode项目中.Dyn.在我的应用程序中,我有以下代码:
import Cocoa
import Dyn
...
SomeDynClass().doSomething()
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试编译时,我得到一个错误import Dyn.错误是
error: missing required module ‘Stat'
Run Code Online (Sandbox Code Playgroud)
看来我的应用程序可以很好地找到我的框架,但它也需要为我的静态库找到一个模块呢?
Stat 有一个非常基本的模块文件:
module Stat {
header "Stat.h"
export *
}
Run Code Online (Sandbox Code Playgroud)
我想我需要指出我的Mac应用程序的框架搜索路径,Stat但我不知道为什么,我不知道如何.我该如何解决这个问题?
cocoa-touch ×4
iphone ×4
cocoa ×3
ios ×3
ipad ×2
objective-c ×2
frameworks ×1
ipc ×1
javascript ×1
jquery ×1
json ×1
macos ×1
mapkit ×1
networking ×1
nib ×1
nsconnection ×1
oop ×1
sockets ×1
swift ×1
uikit ×1
uiscrollview ×1
uitableview ×1
xcode ×1