ios - picture - iphone wallpaper




রৈখিক রেক্ট টেক্সট ফিল্ড পছন্দ করতে UITextview স্টাইল কিভাবে? (13)

আমি একটি মন্তব্য সুরকার হিসাবে একটি টেক্সট ভিউ ব্যবহার করছি।

প্রোপার্টি ইন্সপেক্টরের মধ্যে আমি সীমানার স্টাইলের মতো কিছু খুঁজে পাচ্ছি না যাতে আমি একটি বৃত্তাকার UITextField ব্যবহার করতে পারি, যেমন UITextField

সুতরাং, প্রশ্ন হল: আমি কীভাবে UITextField কে একটি বৃত্তাকার UITextField দিয়ে UITextView পছন্দ করতে পারি?


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

Quartzcore কোডটি চেষ্টা করে দেখুন এবং এটি আমার পুরোনো 3G (আমি পরীক্ষার জন্য ব্যবহার) এ ল্যাগ হয়ে গিয়েছি। একটি বড় সমস্যা নয় তবে যদি আপনি বিভিন্ন আইওএস এবং হার্ডওয়্যারের জন্য যতটা সম্ভব সমেত হতে চান তবে আমি উপরে Andrew_L এর উত্তর দেওয়ার সুপারিশ করছি - অথবা আপনার নিজের চিত্রগুলি তৈরি করুন এবং সেই অনুযায়ী প্রয়োগ করুন।


সুইফ্ট 3 সংস্করণ

ইন্টারফেস বিল্ডার মধ্যে টেক্সট ভিউ সেট আপ করার পরে।

@IBOutlet weak var textView: UITextView!

override func viewDidLoad() {
    super.viewDidLoad()
    textView.layer.cornerRadius = 5     
    textView.layer.borderColor = UIColor.gray.withAlphaComponent(0.5).cgColor
    textView.layer.borderWidth = 0.5  
    textView.clipsToBounds = true
}

সুইফ্ট 2.2 সংস্করণ

@IBOutlet weak var textView: UITextView!

override func viewDidLoad() {
    super.viewDidLoad()
    textView.layer.cornerRadius = 5     
    textView.layer.borderColor = UIColor.grayColor().colorWithAlphaComponent(0.5).CGColor
    textView.layer.borderWidth = 0.5  
    textView.clipsToBounds = true
}

আইফোন এর বার্তা অ্যাপে পাঠ্য বার্তা প্রেরণের জন্য ব্যবহৃত UITextView একটি দুর্দান্ত ব্যাকগ্রাউন্ড চিত্র রয়েছে। এটি পেতে এবং সংশোধন করতে আপনাকে Adobe Illustrator এর প্রয়োজন হবে। আইফোন ui ভেক্টর উপাদান


আপনার কোনও নিরপেক্ষ শৈলী নির্বাচন করতে হবে না, এতে QuartzCore ফ্রেমওয়ার্ক ব্যবহার করে কিছুটা কোড লিখতে হবে:

//first, you
#import <QuartzCore/QuartzCore.h>

//.....

//Here I add a UITextView in code, it will work if it's added in IB too
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 220, 200, 100)];

//To make the border look very close to a UITextField
[textView.layer setBorderColor:[[[UIColor grayColor] colorWithAlphaComponent:0.5] CGColor]];
[textView.layer setBorderWidth:2.0];

//The rounded corner part, where you specify your view's corner radius:
textView.layer.cornerRadius = 5;
textView.clipsToBounds = YES;

এটি কেবলমাত্র ওএস 3.0 এবং তার উপরে কাজ করে, তবে আমি অনুমান করছি যে এটি আসলেই কার্যকরী প্ল্যাটফর্ম।


আপনি একটি পাঠ্য ক্ষেত্র তৈরি করতে পারেন যা পাঠ্য দর্শনের শীর্ষে থাকা কোনও ইভেন্টকে এইভাবে গ্রহণ করে না:

CGRect frameRect = descriptionTextField.frame;
frameRect.size.height = 50;
descriptionTextField.frame = frameRect;
descriptionTextView.frame = frameRect;
descriptionTextField.backgroundColor = [UIColor clearColor];
descriptionTextField.enabled = NO;
descriptionTextView.layer.cornerRadius = 5;
descriptionTextView.clipsToBounds = YES;

আপনি যদি আপনার নিয়ামক কোডটি পরিষ্কার রাখতে চান তবে আপনি নীচের মত UITextView উপবিষ্ট করতে পারেন এবং ইন্টারফেস বিল্ডারে ক্লাসের নাম পরিবর্তন করতে পারেন।

RoundTextView.h

#import <UIKit/UIKit.h>
@interface RoundTextView : UITextView
@end

RoundTextView.m

#import "RoundTextView.h"
#import <QuartzCore/QuartzCore.h>
@implementation RoundTextView
-(id) initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        [self.layer setBorderColor:[[[UIColor grayColor] colorWithAlphaComponent:0.333] CGColor]];
        [self.layer setBorderWidth:1.0];
        self.layer.cornerRadius = 5;
        self.clipsToBounds = YES;
    }
    return self;
}
@end

আমি জানি ইতিমধ্যে এই উত্তর অনেক আছে, কিন্তু আমি সত্যিই যথেষ্ট তাদের কোন খুঁজে পাই নি (অন্তত সুইফ্টে)। আমি একটি সমাধান চেয়েছিলাম যা UITextField হিসাবে একই সঠিক সীমানা সরবরাহ করেছিল (এটি এমন একটি আনুমানিক কোনও নয় যা এটি ঠিক মনে হচ্ছে, তবে এটি ঠিক মত দেখাচ্ছে এবং এটি সর্বদা ঠিক মত দেখতে পাবে)। আমি পটভূমি জন্য UITextView ফিরে একটি UITextField ব্যবহার করতে হবে, কিন্তু প্রতিটি সময় আলাদাভাবে তৈরি করতে চান না।

নিচের সমাধানটি একটি UITextView যা সীমানাটির জন্য এটির নিজস্ব UITextField সরবরাহ করে। এটি আমার সম্পূর্ণ সমাধানটির একটি ছাঁটা সংস্করণ (যা একইভাবে "ইউটিএইচএক্সটিভিউকে" স্থানধারক সমর্থন "যোগ করে) এবং এখানে পোস্ট করা হয়েছে: https://.com/a/36561236/1227119

// This class implements a UITextView that has a UITextField behind it, where the 
// UITextField provides the border.
//
class TextView : UITextView, UITextViewDelegate
{
    var textField = TextField();

    required init?(coder: NSCoder)
    {
        fatalError("This class doesn't support NSCoding.")
    }

    override init(frame: CGRect, textContainer: NSTextContainer?)
    {
        super.init(frame: frame, textContainer: textContainer);

        self.delegate = self;

        // Create a background TextField with clear (invisible) text and disabled
        self.textField.borderStyle = UITextBorderStyle.RoundedRect;
        self.textField.textColor = UIColor.clearColor();
        self.textField.userInteractionEnabled = false;

        self.addSubview(textField);
        self.sendSubviewToBack(textField);
    }

    convenience init()
    {
        self.init(frame: CGRectZero, textContainer: nil)
    }

    override func layoutSubviews()
    {
        super.layoutSubviews()
        // Do not scroll the background textView
        self.textField.frame = CGRectMake(0, self.contentOffset.y, self.frame.width, self.frame.height);
    }

    // UITextViewDelegate - Note: If you replace delegate, your delegate must call this
    func scrollViewDidScroll(scrollView: UIScrollView)
    {
        // Do not scroll the background textView
        self.textField.frame = CGRectMake(0, self.contentOffset.y, self.frame.width, self.frame.height);
    }        
}

আমি বাস্তব চুক্তি চেয়েছিলেন, তাই আমি UIImageView একটি সাবউইউ হিসাবে যোগ করুন। এটি UITextField স্থানীয় সীমানার সাথে UITextField , যার থেকে উপরে থেকে নিচের গ্রেডিয়েন্ট রয়েছে:

textView.backgroundColor = [UIColor clearColor];
UIImageView *borderView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, textView.frame.size.width, textView.frame.size.height)];
borderView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
UIImage *textFieldImage = [[UIImage imageNamed:@"TextField.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(15, 8, 15, 8)];
borderView.image = textFieldImage;
[textField addSubview: borderView];
[textField sendSubviewToBack: borderView];

এই আমি ব্যবহার ইমেজ:


এক সমাধান UITextView এর নিচে একটি UITextField যোগ করা , UITextView পটভূমি স্বচ্ছ করা এবং UITextView কোনও ব্যবহারকারীর ইন্টারঅ্যাকশন নিষ্ক্রিয় করা। তারপর কোড যে UITextField ফ্রেম মত কিছু সঙ্গে পরিবর্তন

self.textField.frame = CGRectInset(self.textView.frame, 0, -2);

আপনি টেক্সট ক্ষেত্র হিসাবে ঠিক একই চেহারা হবে।

এবং Jon দ্বারা প্রস্তাবিত হিসাবে, আপনাকে আইওএস 5.0+ এ [UIViewController viewDidLayoutSubviews] ভিতরে [UIViewController viewDidLayoutSubviews] এই টুকরাটি রাখতে হবে।


এটি একটি পুরানো প্রশ্ন, এবং আমি এই প্রশ্নের উত্তর অনুসন্ধান করা হয়েছে। luvieres এর উত্তর 100% সঠিক এবং পরে রব কিছু কোড যোগ করা হয়েছে। এটা চমৎকার, কিন্তু আমি অন্য প্রশ্নের একটি তৃতীয় পক্ষের উত্তর পেয়েছি যা আমার কাছে খুবই সহায়ক বলে মনে হচ্ছে। আমি কেবল UITextField উপর UITextView এর অনুরূপ UITextField জন্য অনুসন্ধান UITextView , আমারও UITextView সমর্থনের জন্য অনুসন্ধান করা হয়েছিল। ChatInputSample উভয় সন্তুষ্ট। Thats কেন আমি মনে করি এই তৃতীয় পক্ষ অন্যদের সহায়ক হতে পারে। এছাড়াও টিমুরকে ধন্যবাদ, তিনি here এই ওপেন সোর্স উল্লেখ করেছেন।


প্রোগ্রামিং ছাড়াই এটি করার একটি উপায় হল টেক্সটফিল্ডের ব্যাকগ্রাউন্ডটি স্বচ্ছ করা, তারপরে এটির পিছনে গোলাকার রেক্ট বোতামটি স্থাপন করুন। এটি নিষ্ক্রিয় করতে বাটন সেটিংস পরিবর্তন করতে ভুলবেন না এবং নিষ্ক্রিয় Disable adjusts image চেকবাক্স Disable adjusts image করুন।


সর্বোত্তম প্রভাবের জন্য আপনাকে একটি কাস্টম (প্রসারিতযোগ্য) পটভূমি চিত্রটি ব্যবহার করতে হবে। এই UITextField এর বৃত্তাকার সীমানা আঁকা হয় কিভাবে হয়।


#import <QuartzCore/QuartzCore.h>
- (void)viewDidLoad{
  UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 220, 200, 100)];
  textView.layer.cornerRadius = 5;
  textView.clipsToBounds = YES;
  [textView.layer setBackgroundColor: [[UIColor whiteColor] CGColor]];
  [textView.layer setBorderColor: [[UIColor grayColor] CGColor]];
  [textView.layer setBorderWidth: 1.0];
  [textView.layer setCornerRadius:8.0f];
  [textView.layer setMasksToBounds:YES];
  [self.view addSubView:textview];
}




uitextview