如何在UITableView上添加子视图?

时间:2010-07-10 17:41:47

标签: iphone objective-c cocoa-touch uitableview uikit

如果有实时网络连接,我有一个UITableView可以填充数据。当没有连接时,我想在当前视图中添加一个视图,表示没有Internet连接。与没有同步照片的照片应用程序类似。我不确定如何才能做到这一点。

2 个答案:

答案 0 :(得分:0)

这不完全是您想要的,但您可以拥有“空数据”表视图,其中有足够的单元格也允许滚动,第一个单元格包含“无网络连接”等消息。

另一种方法是将表视图放在另一个(父)视图中,并在没有网络时将该(子)表视图交换为空视图。

答案 1 :(得分:0)

一般来说,Apple建议使用UIAlertView。开发人员中心的示例通常包含UIAlertViews,因为Apple认为网络需求应用中缺乏网络可用性是提醒用户注意的重要因素。

我使用以下内容(当然保持版权完整)

UIAlertView+Helper.h中的

//
//  UIAlertViewHelper.h
//  CocoaHelpers
//
//  Created by Shaun Harrison on 10/16/08.
//  Copyright 2008 enormego. All rights reserved.
//

#import <UIKit/UIKit.h>

/*
 * Convenience method to throw a quick alert to the user
 */
void UIAlertViewQuick(NSString* title, NSString* message, NSString* dismissButtonTitle);

@interface UIAlertView (Helper)

@end
UIAlertView+Helper.m中的

//
//  UIAlertViewHelper.m
//  CocoaHelpers
//
//  Created by Shaun Harrison on 10/16/08.
//  Copyright 2008 enormego. All rights reserved.
//

#import "UIAlertView+Helper.h"

void UIAlertViewQuick(NSString* title, NSString* message, NSString* dismissButtonTitle) {
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:title
                                                    message:message
                                                   delegate:nil 
                                          cancelButtonTitle:dismissButtonTitle
                                          otherButtonTitles:nil
                          ];
    [alert show];
    [alert autorelease];
}


@implementation UIAlertView (Helper)

@end

然后在你自己的应用程序中 - 当然使用Reachability。例如:

- (void) updateInterfaceWithReachability: (Reachability*) curReach;

UIAlertViewQuick(@"You're offline!", @"Sorry, it looks like you lost your Internet connection. Please reconnect and try again.", @"OK");                    

我在很多应用程序中都使用了这个助手,因为它可以很容易地向用户呈现alertView。

希望它有所帮助!