如何证明文本框ios中的文本?

时间:2012-02-23 12:38:48

标签: iphone objective-c ios5 uitextfield storyboard

我正在开发一款适用于iPhone的应用程序。我的一个视图包含一个用于显示文本的文本框。我使用故事板来做到这一点。为了更好地解释,该视图将向用户显示足球队的历史。例如,“团队成立于1990年”等,并提供团队的完整历史。所以没有用户互动。读者只会阅读文本并转到下一页。使用文本框的文本是个好主意吗?无论如何都要证明文本的对齐是正确的,所以行的末尾都是对齐的吗?

4 个答案:

答案 0 :(得分:8)

我认为您将使用WebView因为文本的对齐,您只有UItextView的中心,左侧和右侧。

如果您想使用UiWebView,请在

中设置
className.h

@interface className : UIViewController {
    IBOutlet UIWebView *webviewName;
}

@property (nonatomic, retain) UIWebView *webviewName;

className.m

[webviewName loadHTMLString:[NSString stringWithFormat:@"<div align='justify'>%@<div>",TEXT_set] baseURL:nil];

答案 1 :(得分:1)

UITextView是一个很好的方法,但它无法证明它包含的文本是正确的。另一种方法是使用UIWebView来显示简单的HTML文档。

要在HTML中使用漂亮的合理文本,请将text-align属性设置为justify,并可以使用一些JavaScript enhance line-breaking

希望有所帮助:)

答案 2 :(得分:0)

好吧没有问题,你应该使用textView,只是确保它的用户intteraction是禁用的,而如果你的数据是动态的,你应该使用Web视图,这使得对齐正确

答案 3 :(得分:0)

我发现加载Web视图的通用视图控制器子类非常可重用。我有两个。一个设计用于导航控制器,另一个设计用于模态视图控制器。我一次又一次地使用它们来修改帮助,法律信息和我的公司。这对你的目的非常有用。

我使用KempoZer作为我的免费html编辑器来创建我加载的文件。优点是html编辑器允许我添加粗体,斜体,标题和不同的字体大小。

在storyboard中,我有几个segues到同一个视图控制器,并在调用html视图控制器的视图控制器中的prepare for segue方法中设置两个属性。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"instructions"])  {
        [[segue destinationViewController] setNavigationTitle:@"Instructions"];
        [[segue destinationViewController] setHtmlFileName:@""];        
    } else if ([[segue identifier] isEqualToString:@"legal"])  {
        [[segue destinationViewController] setNavigationTitle:@"Legal Notices"];
        [[segue destinationViewController] setHtmlFileName:@"legal.html"];        
    } else if ([[segue identifier] isEqualToString:@"about"])  {
        [[segue destinationViewController] setNavigationTitle:@"About"];
        [[segue destinationViewController] setHtmlFileName:@"AboutSuperDuperCoolApps.html"];        
    } else if ([[segue identifier] isEqualToString:@"videoTutorials"])  {
        [[segue destinationViewController] setNavigationTitle:@"Video Tutorials"];
        [[segue destinationViewController] setHtmlFileName:@""];        
    }
}

这是nab控制器版本,不要忘记创建故事板视图控制器并挂钩Web视图。

//  HTMLViewController.h

#import <UIKit/UIKit.h>

@interface HTMLViewController : UIViewController

@property (strong, nonatomic) IBOutlet UIWebView *webView;
@property (strong, nonatomic) NSString *htmlFileName;
@property (strong, nonatomic) NSString *navigationTitle;

@end

//  HTMLViewController.

#import "HTMLViewController.h"

@implementation HTMLViewController
@synthesize webView, htmlFileName, navigationTitle;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    //
    [self.navigationItem setTitle:navigationTitle];
    // load selected html file
    NSString *bundle = [[NSBundle mainBundle] bundlePath];
    NSString *webPath = [bundle stringByAppendingPathComponent:htmlFileName];
    [super viewDidLoad];
    [webView loadRequest:[NSURLRequest requestWithURL:
                          [NSURL fileURLWithPath:webPath]]];
    //
    [super viewDidLoad];

}


- (void)viewDidUnload
{
    [self setWebView:nil];
    [self setHtmlFileName:nil];
    [self setNavigationTitle:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end