আমি কীভাবে আইওএস এ প্রোগ্রামটিমে একটি চিত্র আঁকিব?


87

আমি রঙিন রেফারেন্স সহ কোনও চিত্র আঁকতে চাই। ফলাফলগুলি ফটোশপের মাল্টিপ্লাই ব্লেন্ডিং মোডের মতো হওয়া উচিত, যেখানে সাদাগুলি রঙের সাথে প্রতিস্থাপন করা হবে :

বিকল্প পাঠ

আমি ধারাবাহিকভাবে রঙের মানটি পরিবর্তন করব।

ফলোআপ করুন: আমি আমার ইমেজভিউয়ের অঙ্কনরেখাতে কোডটি রাখব: পদ্ধতি, তাই না?

সর্বদা হিসাবে, একটি কোড স্নিপেট একটি লিঙ্কের বিপরীতে, আমার বোঝার জন্য প্রচুর পরিমাণে সহায়তা করবে।

আপডেট: রামিন প্রস্তাবিত কোড সহ একটি ইউআইআইমেজভিউ সাবক্লাসিং ।

আমি এটিকে ভিডিডলডে রেখেছি: আমার দর্শন নিয়ামকের:

[self.lena setImage:[UIImage imageNamed:kImageName]];
[self.lena setOverlayColor:[UIColor blueColor]];
[super viewDidLoad];

আমি ছবিটি দেখছি, তবে এটি রঙ করা হচ্ছে না। আমি অন্যান্য চিত্রগুলি লোড করার চেষ্টা করেছি, আইবিতে চিত্রটি সেট করেছিলাম এবং সেটনিডসডিসপ্লে কল করেছি: আমার দর্শনীয় নিয়ামকটিতে।

আপডেট : ড্রআরেক্ট: ডাকা হচ্ছে না।

চূড়ান্ত আপডেট: আমি একটি পুরানো প্রকল্প পেয়েছি যার একটি চিত্র ভিউ সঠিকভাবে সেট আপ হয়েছে যাতে আমি রামিনের কোডটি পরীক্ষা করতে পারি এবং এটি একটি কবজির মতো কাজ করে!

চূড়ান্ত, চূড়ান্ত আপডেট:

আপনারা যারা কেবলমাত্র গ্রাফিক্স সম্পর্কে শিখছেন তাদের পক্ষে এখানে সবচেয়ে সহজ জিনিসটি সম্ভবত কাজ করতে পারে।

আপনার সাবক্ল্যাসড ইউআইভিউতে:

- (void)drawRect:(CGRect)rect {

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColor(context, CGColorGetComponents([UIColor colorWithRed:0.5 green:0.5 blue:0 alpha:1].CGColor)); // don't make color too saturated

    CGContextFillRect(context, rect); // draw base

    [[UIImage imageNamed:@"someImage.png"] drawInRect: rect blendMode:kCGBlendModeOverlay alpha:1.0]; // draw image
}

আমি আশেপাশে বসে থাকা কিছু পুরানো ড্র্যাক রেকট কোডে পোস্ট করার আগে স্নিপেট যুক্ত করেছি এবং এটি দুর্দান্ত কাজ করেছে। [সুপার ভিউডিডলড] কল (বা উপরে এটি সরানো) ছাড়াই এটি চেষ্টা করতে চাই। যে কেউ এই বস্তুকে বরাদ্দ দিচ্ছে সেগুলি ভ্যানিলা ইউআইআইমেজভিউ নয় (যেমন এটি কোনও নিব, বরাদ্দকারী ইত্যাদিতে লোড করা থাকে) নয়, উত্পন্ন সংস্করণ বরাদ্দ করছে কিনা তা নিশ্চিত করতে ডাবল-চেক করুন।
রামিন

উপরের কাজটি যদি না করে তবে অন্য একটি পরামর্শ: ইউআইআইমেজভিউ সাবক্ল্যাসিংয়ের পরিবর্তে একটি সরল ইউআইভিউ সাবক্লাসিংয়ের পরিবর্তে ওভারলে কালার এবং 'ইমেজ' নামক একটি ইউআইআইমেজ সম্পত্তি যুক্ত করুন যা আপনি সেট করতে পারেন। তারপরে সেখানে ড্রআরেক্ট রাখুন। চিত্র চিত্রটি 'চিত্র' মানটি ইউআইআইমেজভিউ থেকে এসেছে বা আপনার সংজ্ঞাযুক্ত কোনও সম্পত্তি থেকে আসে কিনা তা বিবেচ্য নয়।
রামিন

চিত্রটি আলফা সহ থাকলে এটি কি ব্যর্থ হবে না? আমি যদি চিত্রটির কেবল টানা অংশটি আঁকতে চাই? (ঠিক যেমন ইউআইবাটন করে?)
সুনীল চৌহান

উত্তর:


45

প্রথমে আপনি ইউআইআইজেইভিউ ভিউ সাবক্লাস করতে চান এবং অঙ্কন পদ্ধতিটি ওভাররাইড করতে পারেন। আপনার শ্রেণীর জন্য মিশ্রিত রঙ এবং একটি কাস্টম সেটার ধরে রাখার জন্য রঙ পরিবর্তন হওয়ার সাথে একটি পুনরায় আঁকতে বাধ্য করে এমন একটি কাস্টম সেটার ধরে রাখুন (যাকে একে ওভারলে রঙ বলা যায়) প্রয়োজন। এটার মতো কিছু:

- (void) setOverlayColor:(UIColor *)newColor {
   if (overlayColor)
     [overlayColor release];

   overlayColor = [newColor retain];
   [self setNeedsDisplay]; // fires off drawRect each time color changes
}

অঙ্কন পদ্ধতিতে আপনি প্রথমে চিত্রটি আঁকতে চান তারপরে যথাযথ মিশ্রণ মোডের সাথে আপনি যে রঙটি চান তা ভরা একটি আয়তক্ষেত্র দিয়ে ওভারলে করে ফেলবেন: এরকম কিছু:

- (void) drawRect:(CGRect)area
{
  CGContextRef context = UIGraphicsGetCurrentContext();
  CGContextSaveGState(context);

  // Draw picture first
  //
  CGContextDrawImage(context, self.frame, self.image.CGImage);

  // Blend mode could be any of CGBlendMode values. Now draw filled rectangle
  // over top of image.
  //
  CGContextSetBlendMode (context, kCGBlendModeMultiply);
  CGContextSetFillColor(context, CGColorGetComponents(self.overlayColor.CGColor));      
  CGContextFillRect (context, self.bounds);
  CGContextRestoreGState(context);
}

সাধারণত অঙ্কনটি অপ্টিমাইজ করার জন্য আপনি প্রকৃত অঙ্কনটি কেবলমাত্র ড্র্যাকরেটে যাওয়া অঞ্চলে সীমাবদ্ধ রাখবেন তবে যেহেতু ব্যাকগ্রাউন্ড চিত্রটি প্রতিবার রঙ পরিবর্তিত হয় তখন সম্ভবত পুরো জিনিসটি সতেজ হওয়া দরকার।

এটি ব্যবহারের জন্য অবজেক্টের একটি উদাহরণ তৈরি করুন তারপরে imageসম্পত্তিটি (ইউআইআইমেজভিউ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত) ছবিতে এবং ইউআইকিওলোর মানতে সেট করুন overlayColor(মিশ্রণের স্তরগুলি আপনি যে রঙের পাশ দিয়ে যাবেন তার আলফা মান পরিবর্তন করে সামঞ্জস্য করা যেতে পারে)।


মূল অনুরোধের সাথে সংযুক্ত ফলো-আপ পরামর্শ (উপরে)।
রামিন

CGContextSaveGState (প্রসঙ্গ) যুক্ত করা উচিত; মিশ্রণ মোড পরিবর্তন করার আগে বা আপনি একটি আস্তরণের আন্ডারফ্লো পাবেন।
willc2

দোহ, ধন্যবাদ অনুলিপি / পেস্ট ত্রুটি। আমি কোড স্নিপেট এ এটি স্থির করেছি।
রামিন

10
(যেমনটি এখানে অন্য উত্তরে বলা হয়েছে) বিশেষ বিবেচনাগুলি ইউআইআইমেজভিউ ক্লাসটি এর চিত্রগুলি প্রদর্শন করতে আঁকতে অনুকূলিত হয়েছে। ইউআইআইমেজভিউ ড্রআরেক্টকে কল করবে না: একটি উপক্লাস যদি আপনার সাবক্লাসটি কাস্টম অঙ্কন কোডের প্রয়োজন হয় তবে এটি আপনাকে বেস শ্রেণীর হিসাবে ইউআইভিউভ ব্যবহার করার পরামর্শ দেওয়া হয়। এর অর্থ আপনি ইউআইআইজেভিউ ভিউ সাবক্লাস করতে পারবেন না এবং ড্রআরেক্টকে বলা হবে, এমনটি আশা করা যায় না
জনি

হাই, দুর্ভাগ্যক্রমে আমি কোডটি চেষ্টা করেছি এবং এটি কার্যকর হয়নি: /। নীচে উত্তর @ এমপিএসএক্সের দেখুন, যা বলে যে ড্রইরেক্টটি কোনও ইউআইআইমেজভিউ থেকে কল হবে না এবং পরিবর্তে, আপনার একটি ইউআইভিউ (একটি ইউআইআইমেজ সহ) ব্যবহার করা উচিত যা আমার পক্ষে ভাল কাজ করেছে।
jklp

77

আইওএস 7-এ, তারা ইউআইআইমেজভিউতে রেন্ডারিংমোডে টিন্টকলার সম্পত্তি চালু করেছে। আইওএস 7 এ কোনও ইউআইআইমেজ আঁকতে, আপনাকে যা করতে হবে তা হ'ল:

UIImageView* imageView = …
UIImage* originalImage = …
UIImage* imageForRendering = [originalImage imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
imageView.image = imageForRendering;
imageView.tintColor = [UIColor redColor]; // or any color you want to tint it with

18
আপনি যদি স্নিগ্ধ আচরণটি সন্ধান করেন তবে এটি আইওএস 7 এ যাওয়ার জন্য অবশ্যই সেরা ও সহজ উপায় । তবে এই কোডটি এমন একটি শব্দের প্রয়োগ করে যেন আপনি ফটোশপের 100% অস্বচ্ছ "ওভারলে" মিশ্রণ মোড ব্যবহার করছেন, মূল প্রশ্নটি "গুণমান" মিশ্রণ মোডটি নয়।
স্মাইলিবার্গ

26

আমি আলফা দিয়ে একটি চিত্র আঁকতে চেয়েছিলাম এবং আমি নিম্নলিখিত ক্লাসটি তৈরি করেছি। আপনি যদি এটির সাথে কোনও সমস্যা পান তবে আমাকে জানান।

আমি আমার ক্লাসের নাম রেখেছি CSTintedImageViewএবং এটি উত্তরাধিকার সূত্রে প্রাপ্ত হয়েছে UIViewযেহেতু পূর্ববর্তী উত্তরে উল্লিখিত মত পদ্ধতিটি UIImageViewকল করে না drawRect:। আমি UIImageViewক্লাসে পাওয়া যেমন অনুরূপ একটি মনোনীত প্রাথমিক সেট সেট করেছি ।

ব্যবহার:

CSTintedImageView * imageView = [[CSTintedImageView alloc] initWithImage:[UIImage imageNamed:@"image"]];
imageView.tintColor = [UIColor redColor];

সিএসটিএনটেড আইমেজ ভিউ

@interface CSTintedImageView : UIView

@property (strong, nonatomic) UIImage * image;
@property (strong, nonatomic) UIColor * tintColor;

- (id)initWithImage:(UIImage *)image;

@end

সিএসটিএনটেড আইমেজভিউ.এম

#import "CSTintedImageView.h"

@implementation CSTintedImageView

@synthesize image=_image;
@synthesize tintColor=_tintColor;

- (id)initWithImage:(UIImage *)image
{
    self = [super initWithFrame:CGRectMake(0, 0, image.size.width, image.size.height)];

    if(self)
    {
        self.image = image;

        //set the view to opaque
        self.opaque = NO;
    }

    return self;
}

- (void)setTintColor:(UIColor *)color
{
    _tintColor = color;

    //update every time the tint color is set
    [self setNeedsDisplay];
}

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();    

    //resolve CG/iOS coordinate mismatch
    CGContextScaleCTM(context, 1, -1);
    CGContextTranslateCTM(context, 0, -rect.size.height);

    //set the clipping area to the image
    CGContextClipToMask(context, rect, _image.CGImage);

    //set the fill color
    CGContextSetFillColor(context, CGColorGetComponents(_tintColor.CGColor));
    CGContextFillRect(context, rect);    

    //blend mode overlay
    CGContextSetBlendMode(context, kCGBlendModeOverlay);

    //draw the image
    CGContextDrawImage(context, rect, _image.CGImage);    
}

@end

4
ধন্যবাদ. এটি এই প্রশ্নের প্রথম সমাধান যা প্রকৃতপক্ষে চিত্রের স্বচ্ছতাটিকে সমর্থন করেছিল।
টিআরন

আমি যখন এই উত্তরটি ব্যবহার করার চেষ্টা করব তখন পরিবর্তে আমার পটভূমি (যে অঞ্চলটি স্বচ্ছ হওয়া উচিত) কালো। আপনি কি জানেন এখানে আমি কী ভুল করতে পারি?
livetech

কিছু মনে করো না! (স্টোরিবোর্ডে আমার একটি পটভূমি রঙ সেট ছিল! ডিও!) এই সমাধানটি দুর্দান্ত esome
livetech

4
এই সমাধানটি ভালভাবে কাজ করে, যদিও আমি প্রথমে চিত্রটি রেন্ডার করে আরও ভাল ফলাফল পেয়েছি, তারপরে কেসিবিগ্লেন্ডমোডকলার দিয়ে শীর্ষে রঙটি পূরণ করে।
জেরেমি ফুলার

অঙ্কনরেক্ট: পদ্ধতিটি হ'ল এই সমাধানটির "মাংস"। বাকি স্বাদ / শৈলীর বিষয়। ধন্যবাদ! আমার জন্য কাজ!
অশ্বারোহী 7

26

কেবলমাত্র একটি দ্রুত ব্যাখ্যা (এই বিষয়ে কিছু গবেষণার পরে)। অ্যাপল ডক এখানে স্পষ্টভাবে বলেছেন যে:

UIImageViewশ্রেণী প্রদর্শন তার ইমেজ আঁকা অপ্টিমাইজ করা হয়। এর সাবক্লাসের পদ্ধতিটিকে UIImageViewকল করে না drawRect:। যদি আপনার সাবক্লাসে কাস্টম অঙ্কন কোড অন্তর্ভুক্ত করা দরকার হয় তবে UIViewপরিবর্তে আপনার ক্লাসটি সাবক্লাস করা উচিত ।

সুতরাং একটি UIImageViewসাবক্লাসে সেই পদ্ধতিটিকে ওভাররাইড করার চেষ্টা করতে কোনও সময় নষ্ট করবেন না । UIViewপরিবর্তে দিয়ে শুরু করুন।


9
ওহ, আমি কীভাবে ইচ্ছা করি আমি ছয় মাস আগে এটি জানতে পারি। তাদের সতর্কতাটি type২ পয়েন্টের ধরণের হওয়া উচিত, পলক ট্যাগ সহ red
willc2

আমি জানি তুমি বলতে চাচ্ছো ... আমি এর সাথে জগাখিচুড়ি করে আধা দিন হারিয়েছি।
mattorb

ধন্যবাদ @ এমপিএসএক্স ... উত্তরগুলিতে সেই ডকুমেন্টেশন লাইনটিও রেখে দিন ... অ্যাপলেরও ডকুমেন্টেশনে একই কাজ করা উচিত ছিল ... :-)
কৃষ্ণভদ্র

5

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

ওপেন সোর্স, এখানে প্রকল্পের লিঙ্কটি রয়েছে: https://sourceforge.net/projects/photoshopframew/


4
দেখতে আকর্ষণীয় মনে হচ্ছে, তবে অ্যাডোবের আইনজীবীরা যখন এটির সন্ধান করবেন তখন আপনি নামটি কী পরিবর্তন করবেন?
ক্রিস্টোফার জনসন

4
আমরা পরে খুঁজে বের করব। যাইহোক বাণিজ্যিক পণ্য নয়, এটি একরকম "কোডনাম"। একটি অভ্যন্তরীণ গ্রন্থাগারও।
সিকোয় ডেভেলপমেন্ট টিম

লাইব্রেরিটির পরামর্শ দেওয়ার জন্য +1 (এটি কিছুটা স্ব স্ব প্রচারের পরেও), এবং চাকাটি পুনঃস্থাপনের পদক্ষেপ না দেয়।
টিম

4
UIImage * image = mySourceImage;
UIColor * color = [UIColor yellowColor];  
UIGraphicsBeginImageContext(image.size);
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height) blendMode:kCGBlendModeNormal alpha:1];
UIBezierPath * path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, image.size.width, image.size.height)];
[color setFill];
[path fillWithBlendMode:kCGBlendModeMultiply alpha:1]; //look up blending modes for your needs
UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//use newImage for something

আমাকে একটি ইউআইআইমেজ আঁকতে হবে, তবে এটি কোনও ইউআইআইমেজভিউয়ের অভ্যন্তরে ব্যবহার করা উচিত নয়, তবে একটি ইউআইএনএভিগেশনবারের পটভূমি চিত্র হিসাবে ছিল এবং আপনার কোডটি কৌশলটি করেছে। ধন্যবাদ
ncerezo

3

চিত্রের রঙিন প্রয়োগের আরও একটি উপায় এখানে রয়েছে, বিশেষত যদি আপনি ইতিমধ্যে অন্য কোনও কিছুর জন্য কোয়ার্টজকোর ব্যবহার করছেন। এটি একই প্রশ্নের জন্য আমার উত্তর ছিল ।

কোয়ার্টজকোর আমদানি করুন:

#import <QuartzCore/QuartzCore.h>

স্বচ্ছ ক্যালায়ার তৈরি করুন এবং আপনি যে চিত্রটি আঁকতে চান তাতে এটি সাবলেয়ার হিসাবে যুক্ত করুন:

CALayer *sublayer = [CALayer layer];
[sublayer setBackgroundColor:[UIColor whiteColor].CGColor];
[sublayer setOpacity:0.3];
[sublayer setFrame:toBeTintedImage.frame];
[toBeTintedImage.layer addSublayer:sublayer];

আপনার প্রকল্পগুলির ফ্রেমওয়ার্ক তালিকায় কোয়ার্টজকোর যুক্ত করুন (এটি ইতিমধ্যে সেখানে না থাকলে), অন্যথায় আপনি এর মতো সংকলক ত্রুটি পাবেন:

Undefined symbols for architecture i386: "_OBJC_CLASS_$_CALayer"

2

আপনারা যারা ইউআইআইমেজভিউ ক্লাসটি সাবক্লাস করার চেষ্টা করেন এবং "অঙ্করেক্ট: বলা হচ্ছে না" তে আটকে যান, মনে রাখবেন যে পরিবর্তে আপনার একটি ইউআইভিউ ক্লাস সাবক্লাস করা উচিত, কারণ ইউআইআইমেজভিউ ক্লাসগুলির জন্য, "ড্রইরেক্ট:" পদ্ধতিটি বলা হয় না। এখানে আরও পড়ুন: ইউআইআইমেজভিউয়ের আমার সাবক্লাসে ড্রআরেক্ট কল করা হচ্ছে না


0

কেবলমাত্র আমি ভাবতে পারি হ'ল কাঙ্ক্ষিত রঙের সাথে একটি আয়তক্ষেত্রাকার বেশিরভাগ স্বচ্ছ দৃষ্টিভঙ্গি তৈরি করা এবং এটি আপনার চিত্রের দৃশ্যের উপরে একটি সংক্ষিপ্তসার হিসাবে যুক্ত করে রেখে দেওয়া। আমি নিশ্চিত না যে এটি আপনার চিত্রটি যেভাবে কল্পনা করেছে ঠিক সেইভাবে চিত্রিত করবে কিনা, আমি নিশ্চিত নই যে আপনি কীভাবে কোনও চিত্র হ্যাক করবেন এবং বেছে বেছে অন্যের সাথে নির্দিষ্ট রঙগুলি প্রতিস্থাপন করবেন ... তা আমার কাছে বেশ উচ্চাকাঙ্ক্ষী মনে হচ্ছে।

উদাহরণ স্বরূপ:

UIImageView *yourPicture = (however you grab the image);
UIView *colorBlock = [[UIView alloc] initWithFrame:yourPicture.frame];
//Replace R G B and A with values from 0 - 1 based on your color and transparency
colorBlock.backgroundColor = [UIColor colorWithRed:R green:G blue:B alpha:A];
[yourPicture addSubView:colorBlock];

ইউআইক্লোরের জন্য ডকুমেন্টেশন:

colorWithRed:green:blue:alpha:

Creates and returns a color object using the specified opacity and RGB component values.

+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha

Parameters

red    - The red component of the color object, specified as a value from 0.0 to 1.0.

green  - The green component of the color object, specified as a value from 0.0 to 1.0.

blue   - The blue component of the color object, specified as a value from 0.0 to 1.0.



alpha  - The opacity value of the color object, specified as a value from 0.0 to 1.0.

Return Value

The color object. The color information represented by this object is in the device RGB colorspace. 

কোর গ্রাফিকগুলি নমন মোডগুলি প্রয়োগ করতে সক্ষম বলে মনে হচ্ছে। কিভাবে, প্রশ্ন।
উইল 2 2

0

এছাড়াও আপনি পারফরম্যান্সের জন্য সংমিশ্রিত চিত্রটি ক্যাশে করা এবং এটি কেবল ড্রয়ারেক্টে রেন্ডারিং বিবেচনা করতে চাইতে পারেন, তবে যদি কোনও নোংরা পতাকা সত্যই নোংরা থাকে তা আপডেট করুন। আপনি প্রায়শই এটি পরিবর্তন করার সময়েও এমন কিছু ক্ষেত্রে থাকতে পারে যেখানে আঁকাগুলি আসছে এবং আপনি নোংরা নন, তাই আপনি কেবল ক্যাশে থেকে রিফ্রেশ করতে পারেন। পারফরম্যান্সের চেয়ে মেমরি যদি আরও বেশি সমস্যা থাকে তবে আপনি এটিকে উপেক্ষা করতে পারেন :)


অন্তর্নিহিত ক্যালায়ার স্বয়ংক্রিয়ভাবে আপনার জন্য এটি করে। ম্যানুয়ালি ভিউ অঙ্কনকে ক্যাশে করার দরকার নেই।
ডেনিস মুন্সি


0

সুইফট ২.০ এর জন্য,

    let image: UIImage! = UIGraphicsGetImageFromCurrentImageContext()

    imgView.image = imgView.image!.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)

    imgView.tintColor = UIColor(red: 51/255.0, green: 51/255.0, blue: 

51/255.0, alpha: 1.0)

0

আমি এই উদ্দেশ্যে ম্যাক্রো তৈরি করেছি:

#define removeTint(view) \
if ([((NSNumber *)[view.layer valueForKey:@"__hasTint"]) boolValue]) {\
for (CALayer *layer in [view.layer sublayers]) {\
if ([((NSNumber *)[layer valueForKey:@"__isTintLayer"]) boolValue]) {\
[layer removeFromSuperlayer];\
break;\
}\
}\
}

#define setTint(view, tintColor) \
{\
if ([((NSNumber *)[view.layer valueForKey:@"__hasTint"]) boolValue]) {\
removeTint(view);\
}\
[view.layer setValue:@(YES) forKey:@"__hasTint"];\
CALayer *tintLayer = [CALayer new];\
tintLayer.frame = view.bounds;\
tintLayer.backgroundColor = [tintColor CGColor];\
[tintLayer setValue:@(YES) forKey:@"__isTintLayer"];\
[view.layer addSublayer:tintLayer];\
}

ব্যবহার করতে, কেবল কল করুন:

setTint(yourView, yourUIColor);
//Note: include opacity of tint in your UIColor using the alpha channel (RGBA), e.g. [UIColor colorWithRed:0.5f green:0.0 blue:0.0 alpha:0.25f];

রঙটি সরানোর সময় কেবল কল করুন:

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