ios - CGRectMake 标签没有出现

标签 ios objective-c cgrectmake

我刚刚开始制作一个带有导航栏的新应用。我在 AppDelegate.m 中使用导航创建了第一个 View 。

AppDelegate.m :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    sleep(2);
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:[[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]];
    self.window.rootViewController = nav;
    [self.window makeKeyAndVisible];
    return YES;
}

然后,我在 loadView 方法中创建 HomeViewController 的 View 。

加载 HomeViewController 的 View :

- (void)loadView
{
    self.view = [[UIView alloc] init];
    self.view.backgroundColor = [UIColor whiteColor];
    self.searchPoiInstructionsLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 20)];
    self.searchPoiInstructionsLabel.layer.borderColor = [UIColor blackColor].CGColor;
    self.searchPoiInstructionsLabel.layer.borderWidth = 2.0f;
    self.searchPoiInstructionsLabel.text = @"HELLO WORLD";
    [self.view addSubview:self.searchPoiInstructionsLabel];
}

我的标签 Hello World 没有出现...

enter image description here

对于框架,如果我设置 CGRectMake(0, 65, 50, 20)65y,我的“Hello World "出现...(我知道,我必须增加宽度 :) )

enter image description here

我只是不明白我的观点的起源......如果有人能解释我的话。

谢谢

最佳答案

这是 iOS7 的包袱。如果您在 iOS6 下运行您的应用程序,您将看到您期望/想要的标签。

在 iOS7 下,您的 View 起源于导航栏下方,这就是当您将框架设置为起源于 0,0 时看不到标签的原因。如果仔细观察,您实际上可以看到状态栏中 Carrier 指示器后面的模糊标签。

有多种方法可以解决这个问题:

如果 UINavigationBar 不是半透明的,则 0,0 原点将起作用。

您可以使用 topLayoutGuide 更新标签框架

您可以使用 UIScrollView 而不是 UIView

关于ios - CGRectMake 标签没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24050586/

相关文章:

objective-c - SetFrame 适用于 iPhone,但不适用于 iPad。自动调整蒙版大小是罪魁祸首?

ios - iPhone编程: How do I make a UIImage in a UIImageView show at actual size?

仅使用 Xcode 6.0.1 在 iOS 7 上 iOS 应用程序崩溃 - 无法识别的选择器发送到实例

objective-c - 使用 Json 在 Objective C 中发布数据

ios - 使用 sprite 套件创建 2d 波纹效果

ios - 关闭 NavigationViewController 中的所有 View

ios - 如何调用 iPhone map 以获取当前位置作为起始地址的方向

ios - 分享到 Facebook 墙

javascript - 从 JavaScript 到 Objective-C 的通信

iphone - 尝试以编程方式定位按钮,但根据 X、Y 不在正确位置