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