কীভাবে একটি স্বচ্ছ ইউআইবিউবভিউ তৈরি করবেন


117

আমার কাছে একটি অ্যাপ UITableViewএবং প্রতিটি সারির জন্য সম্পর্কিত বিশদ ভিউ রয়েছে। বিস্তারিত দৃশ্যে আমাকে কিছু পাঠ্য এবং একটি পটভূমি চিত্র প্রদর্শন করতে হবে (প্রতিটি সারিটির জন্য পাঠ্য আলাদা, তবে চিত্রটি একই থাকে)। সবচেয়ে সহজ উপায়, আমার মতে, পাঠ্যটিকে একটি .rtf ফাইলে রাখা এবং এটি এ-তে প্রদর্শিত করা UIWebView। তারপরে একটি UIImageViewপিছনে রাখুন UIWebView

আমি UIWebViewআইবিতে এর অস্বচ্ছতা শূন্যে সেট করার চেষ্টা করেছি , তবে এটি কোনও লাভ হয়নি।

আপনি কি আমাকে সাহায্য করতে পারেন?

উত্তর:


302

আমি সুপারিশ:

webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];

(ইন্টারফেস বিল্ডার মধ্যে এই বৈশিষ্ট্য নির্ধারণের iOS এর জন্য 5.0+ কাজ করবে, কিন্তু আইওএস 4.3 জন্য আপনাকে backgroundColor সেট করতে হবে কোডে )

এবং এটি আপনার এইচটিএমএল কোডের মধ্যে অন্তর্ভুক্ত করুন:

<body style="background-color: transparent;">

আইওএস ওয়ার্কস 5 কমপক্ষে সিমুলেটারে।
জেসন ম্যাকক্রারি

1
আমি আইবিতে অস্বচ্ছতা এবং ব্যাকগ্রাউন্ড কালার সেট করতে সক্ষম হয়েছি। আমার জন্য স্টাইল ট্যাগটি এটিকে কাজ করা থেকে বিরত রাখছিল।
ডেভিনিফোলে

আপনি যদি কোড হিসাবে এই স্ট্রিংগুলি কেবল লেখেন তবে এই পথে 4.2.1 এর জন্য কাজ করে। আপনি যদি ইটারফেস বিল্ডারে একই বিকল্পগুলি সেটআপ করেন তবে স্বচ্ছ পটভূমি পাবেন না
গার্গো

2
<body style="background-color: transparent;">, ঐচ্ছিক হবে বলে মনে হয় অন্তত সাম্প্রতিক আইওএস সংস্করণে।
জিরিমিম্পল

21

ইউআইবিউব ভিউ থেকে গ্রেডিয়েন্ট অপসারণ করতে নীচের পুনরাবৃত্ত পদ্ধতিটি ব্যবহার করুন:

[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];
  }
}

ওয়েবভিউ.ওপেক = NO লিখতে ভুলে যান না;
নিলেশ কিকানী

1
আহ, আমরা এখানে কোন "গ্রেডিয়েন্ট" কথা বলছি?
গ্রেগ ম্লেটিক

7

সুইফ্ট আপডেট:

webView.opaque = true
webView.backgroundColor = UIColor.clearColor()

এবং আবারও, সেট করতে ভুলবেন না

<body style="background-color: transparent">

বা আপনার স্টাইল শীটে কোনও ইনলাইন শৈলীর পরিবর্তে আরও ভাল:

body {
     background-color: transparent
}

1
আমার বডি স্টাইল সেট করার দরকার নেই। তবে আমাকে কোডে ব্যাকগ্রাউন্ড কালার এবং অস্বচ্ছ সেট করতে হয়েছিল।
আন্দ্রেজ


4

উপর XCode সালে আনচেক 6.x অনচ্ছ এবং পরিবর্তন পটভূমি এর অস্বচ্ছতা থেকে 0% । আমি মনে করি অন্যান্য এক্সকোড সংস্করণগুলিও কাজ করবে।এখানে চিত্র বর্ণনা লিখুন


3

আমি 'অ্যাট্রিবিউটস ইন্সপেক্টর'-এ গিয়ে এবং অঙ্কন ওপাককে অনিচ্ছুক করে আমার ইউআইউইউভিউ ভিউটিকে স্বচ্ছ করতে সক্ষম হয়েছি।

কেবলমাত্র রেফারেন্সের জন্য আমার এইচটিএমএল কোড।

    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];

0

স্ক্রোলগুলি অপসারণ করতে এবং 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];  
               }  
          }  
     }   
}  

0

সুইফটে 4.x এ,

webView.backgroundColor = .clear
openSourceLicensesWebView.isOpaque = false
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.