অস্পষ্ট চিত্রটি কীভাবে ইউআইভিউজুয়ালএফেক্টভিউ ব্যবহার করবেন?


208

কেউ কি কোনও ছবিতে অস্পষ্টতা প্রয়োগের একটি ছোট উদাহরণ দিতে পারেন? আমি কিছুক্ষণের জন্য কোডটি বের করার চেষ্টা করছি :( আপত্তি সি তে এখনও নতুন!

UIVisualEffectViewজটিল চাক্ষুষ প্রভাব উপর একটি সহজ বিমূর্ততা প্রদান করে। কাঙ্ক্ষিত প্রভাবের উপর নির্ভর করে ফলাফলগুলি ভিউয়ের পিছনে স্তরযুক্ত সামগ্রী বা দর্শন সামগ্রীর ভিউতে যুক্ত সামগ্রীকে প্রভাবিত করতে পারে।

উপস্থিত UIVisualEffectViewভিউতে অস্পষ্ট বা স্পন্দন প্রভাব প্রয়োগ করতে একটি বিদ্যমান ভিউতে একটি প্রয়োগ করুন । আপনি ভিউ হায়ারার্কিতে ইউআইভিউজুয়ালএফেক্টভিউ যুক্ত করার পরে, এর কনটেন্টভিউতে কোনও সাবভিউ যুক্ত করুন UIVisualEffectView। সরাসরি UIVisualEffectViewনিজের মধ্যে সাবভিউ যুক্ত করবেন না ।

https://developer.apple.com/documentation/uikit/uivisualeffectview#//apple_ref/occ/instp/UIVisualEffectView/contentView


1
UIVisualEffectView'S contentView github.com/onmyway133/blog/issues/124
onwayway133

এছাড়াও আপনি যদি এটি কোনও সাবউভিউতে যুক্ত করে থাকেন এবং এর ফ্রেমটি সেট করে থাকেন তা নিশ্চিত করে ঘূর্ণন কাজ করে তা নিশ্চিত করতে ডিডলায়আউটসুভিউগুলিতে ফ্রেমটি আপডেট করতে ভুলবেন না।
স্টিভ মোসার 14

উত্তর:


415

এই অস্পষ্ট দৃষ্টিভঙ্গিটি কেবল চিত্রভিউতে রাখুন। এখানে উদ্দেশ্য-সি এর একটি উদাহরণ রয়েছে:

UIVisualEffect *blurEffect;
blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];

UIVisualEffectView *visualEffectView;
visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];

visualEffectView.frame = imageView.bounds;
[imageView addSubview:visualEffectView];

এবং সুইফট:

var visualEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))    

visualEffectView.frame = imageView.bounds

imageView.addSubview(visualEffectView)

3
তোমাকে অনেক ধন্যবাদ! আমি ফ্রেমটি সেট করার কথা ভুলে গেছি :( গুগলে এখনও
ভিজ্যুজের

1
আরও ভাল আশা করি এআইপি পরিবর্তন হবে না! এটি এখনও না-প্রকাশিত অ্যাপল এপিআইগুলি নিয়ে আলোচনা করা জটিল কারণ হতে পারে be উদাহরণস্বরূপ, কিছু ইউআইকিট ডায়নামিক্স এপিআই বিটা এবং প্রকাশের মধ্যে কিছুটা পরিবর্তন করে। বড় কিছু না, তবে তারা মূল এপিআইগুলির বিপরীতে লেখা কোনও নমুনা কোডটি ভেঙে ফেলত।
জেভ আইজেনবার্গ

5
অস্পষ্টতা আউট / আউট করার উপায় কি আছে?
রুবেন মার্টিনেজ জুনিয়র

3
@ বিএস আপনি ভিজ্যুয়াল এফেক্ট ভিউয়ের আলফা অ্যানিমেট করতে পারবেন। গম্ভীর গর্জন।
ম্যাকিয়েজ ট্রাইবিও

2
ইউআইব্লুরএফেক্টটি দুর্দান্ত, তবে নোট করুন যে এটি আইপ্যাড 2 এর মতো পুরানো ডিভাইসে কাজ করে না - আমি কেন এটি আমার স্ক্রিনের উপর কেবল একটি আড়াআড়ি স্তর রাখছিলাম এবং ঝাপসা হয়ে দেখছি না তা চেষ্টা করার জন্য কয়েক ঘন্টা ব্যয় করেছি - এটি সমস্ত কারণ আমি একটি পুরানো ডিভাইসে পরীক্ষা করছিলাম
কিথ

135

ইউআইভিআইব্রান্সিএফেক্ট এবং ইউআইআইবিআইসুয়ালএফেক্টভিউয়ের সাথে ইউআইআইবিবারুনিফ্যাক্টটি কীভাবে ব্যবহার করবেন তা এখানে রয়েছে

উদ্দেশ্য গ:

// Blur effect
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
[blurEffectView setFrame:self.view.bounds];
[self.view addSubview:blurEffectView];

// Vibrancy effect
UIVibrancyEffect *vibrancyEffect = [UIVibrancyEffect effectForBlurEffect:blurEffect];
UIVisualEffectView *vibrancyEffectView = [[UIVisualEffectView alloc] initWithEffect:vibrancyEffect];
[vibrancyEffectView setFrame:self.view.bounds];

// Label for vibrant text
UILabel *vibrantLabel = [[UILabel alloc] init];
[vibrantLabel setText:@"Vibrant"];
[vibrantLabel setFont:[UIFont systemFontOfSize:72.0f]];
[vibrantLabel sizeToFit];
[vibrantLabel setCenter: self.view.center];

// Add label to the vibrancy view
[[vibrancyEffectView contentView] addSubview:vibrantLabel];

// Add the vibrancy view to the blur view
[[blurEffectView contentView] addSubview:vibrancyEffectView];

সুইফট 4:

    // Blur Effect
    let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    blurEffectView.frame = view.bounds
    view.addSubview(blurEffectView)

    // Vibrancy Effect
    let vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect)
    let vibrancyEffectView = UIVisualEffectView(effect: vibrancyEffect)
    vibrancyEffectView.frame = view.bounds

    // Label for vibrant text
    let vibrantLabel = UILabel()
    vibrantLabel.text = "Vibrant"
    vibrantLabel.font = UIFont.systemFont(ofSize: 72.0)
    vibrantLabel.sizeToFit()
    vibrantLabel.center = view.center

    // Add label to the vibrancy view
    vibrancyEffectView.contentView.addSubview(vibrantLabel)

    // Add the vibrancy view to the blur view
    blurEffectView.contentView.addSubview(vibrancyEffectView)

1
কাজের extension UILabel { override func tintColorDidChange() { textColor = tintColor; super.tintColorDidChange() } }
কাঠামো সাবক্ল্যাসিং

1
অ্যাপলটি বাগটি ঠিক করেছে বলে মনে হচ্ছে। আইওএস 8 বিটা 2 এ সাবক্লাস / এক্সটেনশনের কাজটি আর প্রয়োজন নেই
বেঞ্জামিন মায়ো

2
ধন্যবাদ। আমি বাগ ফিক্সটি পরীক্ষা করে নিশ্চিত করেছি এবং উত্তরটি সম্পাদনা করেছি।
ম্যাট রান্ডেল

1
আমি এটিকে আমার দৃশ্যে যোগ করার চেষ্টা করছি তবে যতবার আমি এই দর্শনটি উপস্থাপন করব ততক্ষণ আমি একটি সাদা পটভূমি না পাওয়া পর্যন্ত এটি বারবার ঝাপসা হয়ে যায় ... আমি এটিকে বরখাস্ত করার পরে অপসারণটি ফ্রমসুপারভিউ দিয়ে সরিয়ে দিচ্ছি তবে আমি একই ফলাফল পেয়ে যাচ্ছি .. .. কোন ধারনা?
জর্জ আসদা

@ জর্জেআসদা কীভাবে ফোন করার পরিবর্তে removeFromSuperView, আপনি এটি করবেন [self.visualEffectView setHidden:NO];? লুকানো বা প্রদর্শনের চেয়ে ভিউতে বরাদ্দ করা এবং যুক্ত করা ব্যয়বহুল ক্রিয়াকলাপ।
ইউন লি

46

আপনি সাধারণ পরিস্থিতিতে সহজেই এই প্রভাবগুলি তৈরি করতে ইন্টারফেস নির্মাতা ব্যবহার করতে পারেন। যেহেতু দর্শনগুলির জেড-মানগুলি UIVisualEffectViewডকুমেন্ট আউটলাইনে তালিকাভুক্ত করা হয়েছে তার উপর নির্ভর করবে, তাই আপনি যে দৃষ্টিভঙ্গিটি অস্পষ্ট করতে চান তার আগে আপনি দস্তাবেজের রূপরেখায় একটি টেনে আনতে পারেন । এটি স্বয়ংক্রিয়ভাবে একটি নেস্টেড তৈরি করে UIView, যা contentViewপ্রদত্ত সম্পত্তি UIVisualEffectView। এই দৃষ্টিভঙ্গির মধ্যে নীড়ের জিনিস যা আপনি অস্পষ্টতার শীর্ষে উপস্থিত হতে চান।

এক্সকোড 6 বিটা 5

আপনি সহজেই কম্পনের সুবিধা নিতে পারেন UIVisualEffect, যা স্বয়ংক্রিয়ভাবে UIVisualEffectViewডিফল্টরূপে সজ্জিত ভাইব্রান্সির সাথে ডকুমেন্টের রূপরেখায় অন্য নেস্টেড তৈরি করবে । তারপরে আপনি ">> স্লাইড" ইউআই উপাদানটি আনলক করতে একই প্রভাব অর্জন করতে নেস্টেড UIView(আবার, এর contentViewসম্পত্তি UIVisualEffectView) এর সাথে একটি লেবেল বা পাঠ্য ভিউ যুক্ত করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন


আপনি কি নিশ্চিত করতে পারবেন যে এর মাধ্যমে যা দেখায় তা আসলে অস্পষ্ট? আমার চিত্রটি (যা আপনি আপনার শ্রেণিবিন্যাসে "ব্যাকগ্রাউন্ড ফটো" বলেছিলেন) এটি কেবল একটি অস্পষ্ট স্টাইলের অধীনে ম্লান হয়ে গেছে: গাark় ট্রান্সলুসেন্ট ভিউ। (
এক্সকোড

'সবেমাত্র ম্লান হয়ে গেছে' এর অর্থ কী? আপনি কি মনে করেন না এটি তখন ঝাপসা?
ওহহ

ঠিক আছে, আমি কয়েক ঘন্টার মধ্যে একবার দেখে নেব।
ওহহ

ধন্যবাদ! আপনার পটভূমি ফটোতে একটি দৃশ্যের স্তরক্রম রয়েছে যা স্ক্রিনশটগুলিতে ধসে পড়েছে ... আমি সবেমাত্র একটি ইউআইআইমেজভিউ ব্যবহার করেছি এবং এটিতে একটি ছবি বরাদ্দ করেছি (সবুজ পটভূমির বিরুদ্ধে হালকা রঙের কুকুর - সাদা পা এবং সবুজ ঘাসের মধ্যে ধারালো সংজ্ঞাটি হ'ল) ভিজ্যুয়াল এফেক্ট ভিউ দ্বারা কভার করা ঠিক তত তীক্ষ্ণ যখন না তখন)।
tobinjim

1
আমি দেখেছি যে অন্ধকারের ধরণের ধাপটি ডার্কে বদলে লেবেলটি সাদা রঙ পেয়ে যায় ...
ড্যানিয়েল

8

আমি স্টোরিবোর্ডের মাধ্যমে ভিজ্যুয়াল এফেক্ট তৈরি করতে পছন্দ করি - ইউআই এলিমেন্ট তৈরি বা রক্ষণাবেক্ষণের জন্য কোনও কোড ব্যবহার করা হয় না। এটি আমাকে পুরো ল্যান্ডস্কেপ সমর্থনও দেয়। আমি অস্পষ্ট এবং ভাইব্রান্সির সাথে ইউআইভিউজুয়ালএফেক্টগুলি ব্যবহার করার জন্য একটি সামান্য ডেমো তৈরি করেছি।

গিথুব ডেমো


8

কেউ যদি সুইফটে উত্তরটি পছন্দ করতে চান:

var blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark) // Change .Dark into .Light if you'd like.

var blurView = UIVisualEffectView(effect: blurEffect)

blurView.frame = theImage.bounds // 'theImage' is an image. I think you can apply this to the view too!

হালনাগাদ :

এখন অবধি এটি আইবি এর অধীনে উপলভ্য যাতে আপনার এটির জন্য কোনও কোড করতে হবে না :)


2
-(void) addBlurEffectOverImageView:(UIImageView *) _imageView
{
    UIVisualEffect *blurEffect;
    blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];

    UIVisualEffectView *visualEffectView;
    visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];

    visualEffectView.frame = _imageView.bounds;
    [_imageView addSubview:visualEffectView];
}

আপনার উত্তর কীভাবে পোস্ট করা সমস্যা সমাধানে
ওপিকে

0

হালকা বা গা dark়, ব্যাকগ্রাউন্ড ঝাপসা করার জন্য এটি ব্যবহৃত হয়, যাতে পাঠ্যটি আরও সহজে overেকে দেওয়া যায়। আপনি বৈকল্পিকভাবে স্পন্দন সক্ষম করতে পারেন, যার ফলে লেখার অস্পষ্টতার সাথে একটি উজ্জ্বল, বিপরীত রঙে রেন্ডার করা হয়েছে।

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