html - 在 iOS 7 或 8 的网页 View 中使用不同的样式表

标签 html ios css objective-c webview

我有一个使用 WebView 显示文本和图像的应用程序。在 iOS 8 上,我将边距和填充设置为 0px 以正确布局 HTML 页面。但是要在 iOS 7 上正确查看,边距和填充必须设置为 4px。

我怎样才能让它具有适用于两个 iOS 版本的两种不同格式。

我希望它在 iOS 8 上自动将填充和边距设置为 0px,在 iOS 7 上设置为 4px。这是我当前的样式表(位于 NSString 中)。

   NSString *stylesheet=@"<html><head><style>body { margin: 0; padding: 0; }h1{font-weight:normal;font-family: HelveticaNeue-Thin; padding: 7px; margin-bottom: 3px;}p{font-family: HelveticaNeue-Light; padding-top:0px; padding-left: 7px;paddin-right: 7px; margin-top:10px;}imgcenter {display: block; margin: 0 auto;}b{font-weight:normal;font-family: HelveticaNeue-Medium;}</style></head><body>";
    NSString *footer=@"</body></html>";

    [super viewDidLoad];
    NSString *fullURL = [NSString stringWithFormat:@"%@%@%@",stylesheet, self.SelectedProduct.content, footer];
   NSString *path = [[NSBundle mainBundle] bundlePath];
    NSURL *baseURL = [NSURL fileURLWithPath:path];
    [_webview loadHTMLString:fullURL baseURL:baseURL];

最佳答案

我已经使用 if 语句和检查系统版本设法解决了这个问题。

这是工作代码

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

- (void)viewDidLoad{

    if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
          NSString *stylesheet=@"<html><head><style>body { margin: 4px; padding: 4px; margin-top:0px}h1{font-weight:normal;font-family: HelveticaNeue-Thin; padding: 7px; margin-bottom: 3px; padding-top:0px;}p{font-family: HelveticaNeue-Light; padding-top:0px; padding-left: 7px;paddin-right: 7px; margin-top:10px;}imgcenter {display: block; margin: 0 auto;}b{font-weight:normal;font-family: HelveticaNeue-Medium;}</style></head><body>";
        NSString *footer=@"</body></html>";

        [super viewDidLoad];
        NSString *fullURL = [NSString stringWithFormat:@"%@%@%@",stylesheet, self.SelectedProduct.content, footer];
        NSString *path = [[NSBundle mainBundle] bundlePath];
        NSURL *baseURL = [NSURL fileURLWithPath:path];
        [_webview loadHTMLString:fullURL baseURL:baseURL];
    }

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
          NSString *stylesheet=@"<html><head><style>body { margin: 0px; padding: 0px; margin-top:0px}h1{font-weight:normal;font-family: HelveticaNeue-Thin; padding: 7px; margin-bottom: 3px; }p{font-family: HelveticaNeue-Light; padding-top:0px; padding-left: 7px;paddin-right: 7px; margin-top:10px;}imgcenter {display: block; margin: 0 auto;}b{font-weight:normal;font-family: HelveticaNeue-Medium;}</style></head><body>";
        NSString *footer=@"</body></html>";

        [super viewDidLoad];
        NSString *fullURL = [NSString stringWithFormat:@"%@%@%@",stylesheet, self.SelectedProduct.content, footer];
        NSString *path = [[NSBundle mainBundle] bundlePath];
        NSURL *baseURL = [NSURL fileURLWithPath:path];
        [_webview loadHTMLString:fullURL baseURL:baseURL];
    }

关于html - 在 iOS 7 或 8 的网页 View 中使用不同的样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25611350/

相关文章:

javascript - Fabricjs - setBackgroundImage 为空 URL 导致 _setWidthHeight 中出现空引用错误

ios - 切换到 Xcode 7 后将 null 传递给需要 non_null 参数的被调用方

javascript - 打开和关闭 Div 元素时添加动画

ios - AVPlayer 元数据图稿不显示在 tvOS 上

ios - UIBezierPath 剪辑 UIIimage

Jquery toggleClass 没有像我预期的那样工作

仅限 css - 带有固定标题的表格溢出

javascript - 悬停在链接上时如何反转整个页面的颜色

html - Css Skew 创建一个相框

html - 如何让图像显示在面板的左侧(都在同一行)