我有一个使用 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/