Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在UIWebView中垂直和水平居中HTML_Html_Css_Ios_Uiwebview - Fatal编程技术网

在UIWebView中垂直和水平居中HTML

在UIWebView中垂直和水平居中HTML,html,css,ios,uiwebview,Html,Css,Ios,Uiwebview,我试图在UIWebView中垂直和水平居中未知高度的内容 我现在拥有的在Safari中非常有用: 但是,它在UIWebView中显示时看起来并不正确: 你有什么办法让它工作吗?我不能做的一件事是设置viewport meta,因为在iPad上的模式视图控制器中显示UIWebView时需要这样做,因为它不是屏幕的全宽: <meta name="viewport" content="width=device-width;initial-scale=1.0;maximum-scale=1.0

我试图在UIWebView中垂直和水平居中未知高度的内容

我现在拥有的在Safari中非常有用:

但是,它在UIWebView中显示时看起来并不正确:

你有什么办法让它工作吗?我不能做的一件事是设置viewport meta,因为在iPad上的模式视图控制器中显示UIWebView时需要这样做,因为它不是屏幕的全宽:

<meta name="viewport" content="width=device-width;initial-scale=1.0;maximum-scale=1.0;"/>

我尝试了您的示例,它在UIWebView中运行良好。我不知道如何加载HTML/CSS。你确定CSS加载正确吗?您是否设置了UIWebView的框架

这是适合我的代码。我将UIWeb的框架设置为小于屏幕大小,因为您提到了以模式显示它

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *htmlString = @"<html><head><style type='text/css'>html,body {margin: 0;padding: 0;width: 100%;height: 100%;}html {display: table;}body {display: table-cell;vertical-align: middle;padding: 20px;text-align: center;-webkit-text-size-adjust: none;}</style></head><body><p><strong>Title</strong></p><p>A long explanation about what's going on and all that.</p><p><a href='#'>A link</a></p></body></html>​";

    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10.0, 10.0, 300.0, 400.0)];
    [self.view addSubview:webView];
    [webView loadHTMLString:htmlString baseURL:nil];

    [webView release];
}
-(void)viewDidLoad
{
[超级视图下载];
NSString*htmlString=@“html,正文{margin:0;padding:0;宽度:100%;高度:100%;}html{display:table;}正文{display:table单元格;垂直对齐:中间;padding:20px;文本对齐:居中;-webkit文本大小调整:无;}标题关于正在发生的一切的详细说明。

​"; UIWebView*webView=[[UIWebView alloc]initWithFrame:CGRectMake(10.0、10.0、300.0、400.0)]; [self.view addSubview:webView]; [webView加载htmlString:htmlString基URL:nil]; [网络视图发布]; }

我尝试了你的示例,它在UIWebView中运行良好。我不知道如何加载HTML/CSS。你确定CSS加载正确吗?你设置了UIWebView的框架了吗

以下是我的代码。我将UIWeb的框架设置为小于屏幕大小,因为您提到了以模式显示它

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSString *htmlString = @"<html><head><style type='text/css'>html,body {margin: 0;padding: 0;width: 100%;height: 100%;}html {display: table;}body {display: table-cell;vertical-align: middle;padding: 20px;text-align: center;-webkit-text-size-adjust: none;}</style></head><body><p><strong>Title</strong></p><p>A long explanation about what's going on and all that.</p><p><a href='#'>A link</a></p></body></html>​";

    UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(10.0, 10.0, 300.0, 400.0)];
    [self.view addSubview:webView];
    [webView loadHTMLString:htmlString baseURL:nil];

    [webView release];
}
-(void)viewDidLoad
{
[超级视图下载];
NSString*htmlString=@“html,正文{margin:0;padding:0;宽度:100%;高度:100%;}html{display:table;}正文{display:table单元格;垂直对齐:中间;padding:20px;文本对齐:居中;-webkit文本大小调整:无;}标题关于正在发生的一切的详细说明。

​"; UIWebView*webView=[[UIWebView alloc]initWithFrame:CGRectMake(10.0、10.0、300.0、400.0)]; [self.view addSubview:webView]; [webView加载htmlString:htmlString基URL:nil]; [网络视图发布]; }

我现在觉得自己太傻了。问题是我在问题中没有分享的一个细节。我从一个包含%@的文件中加载一个字符串,并使用stringWithFormat进行变量替换。这将清除CSS中的百分号,得到的是100,而不是100%。感谢您花时间重现此内容,我将我真的很感激。真的很成功,但速度很慢?我们如何解决这个问题?什么很慢?HTML的加载?我现在觉得很愚蠢。问题是我没有在问题中分享的一个细节。我从一个包含%@的文件中加载一个字符串,并使用stringWithFormat进行变量替换。这让问题迎刃而解CSS中的百分比符号,产生的是100,而不是100%。感谢您花时间复制这个,我真的很感激。真的很成功,但速度非常慢?我们如何解决这个问题?什么比较慢?HTML的加载?