Как сделать прозрачный интерфейс UIWebView
У меня есть приложение с UITableView
и соответствующее подробное представление для каждой строки. В подробном представлении мне нужно отобразить текст и фоновое изображение (текст для каждой строки отличается, но изображение остается тем же). Самый простой способ, на мой взгляд, состоит в том, чтобы поместить текст в файл .rtf и отобразить его в UIWebView
. Затем просто положите UIImageView
за UIWebView
.
Я попытался установить непрозрачность UIWebView
на ноль в IB, но это не помогло.
Можете ли вы мне помочь?
Ответы
Ответ 1
Я рекомендую:
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
(установка этих свойств в Interface Builder будет работать для iOS 5.0+, но для iOS 4.3 вы должны установить код backgroundColor в коде)
И включите это в свой HTML-код:
<body style="background-color: transparent;">
Ответ 2
Используйте рекурсивный метод ниже, чтобы удалить градиент из UIWebView:
[webView setBackgroundColor:[UIColor clearColor]];
[self hideGradientBackground:webView];
- (void) hideGradientBackground:(UIView*)theView
{
for (UIView * subview in theView.subviews)
{
if ([subview isKindOfClass:[UIImageView class]])
subview.hidden = YES;
[self hideGradientBackground:subview];
}
}
Ответ 3
Быстрое обновление:
webView.opaque = true
webView.backgroundColor = UIColor.clearColor()
И снова, не забудьте установить
<body style="background-color: transparent">
Или еще лучше, вместо встроенного стиля, в таблице стилей:
body {
background-color: transparent
}
Ответ 4
В XCode 6.x снимите флажок Непрозрачный и измените Фоновая непрозрачность на 0%. Я думаю, что другие версии XCode также будут работать. ![enter image description here]()
Ответ 5
Для Swift 3 и Xcode 8
self.webView.isOpaque = false;
self.webView.backgroundColor = UIColor.clear
Ответ 6
Я смог сделать свой UIWebView прозрачным, перейдя в "Attributes Inspector" и сняв флажок Drawing Opaque.
Мой код HTML только для справки.
UIWebView* webView =(UIWebView *) [cell viewWithTag:100];
NSString* htmlContentString = [NSString stringWithFormat:
@"<html>"
"<style type='text/css'>html,body {margin: 0;padding: 0;width: 100%%;height: 100%%;}</style>"
"<body>"
"<table style='border:1px solid gray; border-radius: 5px; overflow: hidden;color:white;font-size:10pt' cellspacing=\"0\" cellpadding=\"1\" align='right'><tr>"
"<td>Hello</td><td>There</td>"
"</tr></table>"
"</body></html>"
];
[webView loadHTMLString:htmlContentString baseURL:nil];
Ответ 7
Чтобы удалить свитки и сделать прозрачный UIWebView
, попробуйте этот код ниже:
webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];
for(UIView *view in webView.subviews){
if ([view isKindOfClass:[UIImageView class]]) {
// to transparent
[view removeFromSuperview];
}
if ([view isKindOfClass:[UIScrollView class]]) {
UIScrollView *sView = (UIScrollView *)view;
//to hide Scroller bar
sView.showsVerticalScrollIndicator = NO;
sView.showsHorizontalScrollIndicator = NO;
for (UIView* shadowView in [sView subviews]){
//to remove shadow
if ([shadowView isKindOfClass:[UIImageView class]]) {
[shadowView setHidden:TRUE];
}
}
}
}