কেউ দয়া করে আমাকে বলতে পারেন আমি কীভাবে ফন্টের ধরণ এবং আকার পরিবর্তন করতে পারি UISegmentedControl
?
কেউ দয়া করে আমাকে বলতে পারেন আমি কীভাবে ফন্টের ধরণ এবং আকার পরিবর্তন করতে পারি UISegmentedControl
?
উত্তর:
আমি একই ইস্যু মধ্যে দৌড়ে। এই কোডটি পুরো সেগমেন্টযুক্ত নিয়ন্ত্রণের জন্য হরফ আকার নির্ধারণ করে। অনুরূপ কিছু হরফ প্রকার সেট করতে কাজ করতে পারে। মনে রাখবেন এটি কেবল আইওএস 5 + এর জন্য উপলব্ধ
ওবজ সি :
UIFont *font = [UIFont boldSystemFontOfSize:12.0f];
NSDictionary *attributes = [NSDictionary dictionaryWithObject:font
forKey:NSFontAttributeName];
[segmentedControl setTitleTextAttributes:attributes
forState:UIControlStateNormal];
সম্পাদনা: হ্রাস UITextAttributeFont
করা হয়েছে - NSFontAttributeName
পরিবর্তে ব্যবহার করুন।
সম্পাদনা # 2: সুইফট 4 NSFontAttributeName
এর জন্য পরিবর্তন করা হয়েছে NSAttributedStringKey.font
।
সুইফট 5 :
let font = UIFont.systemFont(ofSize: 16)
segmentedControl.setTitleTextAttributes([NSAttributedString.Key.font: font], for: .normal)
সুইফট 4 :
let font = UIFont.systemFont(ofSize: 16)
segmentedControl.setTitleTextAttributes([NSAttributedStringKey.font: font],
for: .normal)
সুইফট 3 :
let font = UIFont.systemFont(ofSize: 16)
segmentedControl.setTitleTextAttributes([NSFontAttributeName: font],
for: .normal)
সুইফট ২.২ :
let font = UIFont.systemFontOfSize(16)
segmentedControl.setTitleTextAttributes([NSFontAttributeName: font],
forState: UIControlState.Normal)
@ অড্রে-গর্ডিভের সুইফ্ট বাস্তবায়নের জন্য ধন্যবাদ
[mySegmentedControl setTintColor:onColor forTag:kTagOnState];
এবং [mySegmentedControl setTintColor:offColor forTag:kTagOffState];
তারপরে কাজটি [mySegmentedControl setTitleTextAttributes:attributes forState:UIControlStateNormal];
করে ফেলেছি তারপরে আমি সবেমাত্র সেট করা রংগুলি প্রয়োগ করব।
NSDictionary *attributes = @{NSFontAttributeName: [UIFont boldsystemFontOfSize:12.0f]};
boldSystemFontOfSize:
(মূলধন সিস্টেমের জন্য গুলি)
আইওএস 5.0+ এ উপস্থিতি API ব্যবহার করুন:
[[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"STHeitiSC-Medium" size:13.0], UITextAttributeFont, nil] forState:UIControlStateNormal];
লিঙ্কগুলি: http://developer.apple.com/library/ios/#docamentation/UIKit/References/UIA উপস্থিতি_প্রোটোকল / রেফারেন্স / রেফারেন্স। Html#//apple_ref / doc / uid / TP40010906
http://www.raywenderlich.com/4344/user-interface-customization-in-ios-5
UITextAttributeFont
অবচয় করা হয়েছে - NSFontAttributeName
পরিবর্তে ব্যবহার করুন।
UISegmentedControl
।
এখানে গৃহীত উত্তরের একটি সুইফ্ট সংস্করণ রয়েছে:
সুইফট 3 :
let font = UIFont.systemFont(ofSize: 16)
segmentedControl.setTitleTextAttributes([NSFontAttributeName: font],
for: .normal)
সুইফট ২.২ :
let font = UIFont.systemFontOfSize(16)
segmentedControl.setTitleTextAttributes([NSFontAttributeName: font],
forState: UIControlState.Normal)
আরেকটি বিকল্প হ'ল নিয়ন্ত্রণে রূপান্তর প্রয়োগ করা। তবে এটি নিয়ন্ত্রণ সীমানা সহ সমস্ত কিছু কমিয়ে দেবে।
segmentedControl.transform = CGAffineTransformMakeScale(.6f, .6f);
সুইফ্ট স্টাইল:
UISegmentedControl.appearance().setTitleTextAttributes(NSDictionary(objects: [UIFont.systemFontOfSize(14.0)], forKeys: [NSFontAttributeName]), forState: UIControlState.Normal)
[NSFontAttributeName: font]
এখানে আমি iOS8 এর জন্য আপডেট করেছি
[[UISegmentedControl appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"STHeitiSC-Medium" size:13.0], NSFontAttributeName, nil] forState:UIControlStateNormal];
এক্সকোড 8.1, সুইফট 3
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UISegmentedControl.appearance().setTitleTextAttributes(NSDictionary(objects: [UIFont.systemFont(ofSize: 24.0)],
forKeys: [NSFontAttributeName as NSCopying]) as? [AnyHashable : Any],
for: UIControlState.normal)
}
}
শুধু সংখ্যা মান পরিবর্তন করুন (ofSize: 24.0)
// Set font-size and font-femily the way you want
UIFont *objFont = [UIFont fontWithName:@"DroidSans" size:18.0f];
// Add font object to Dictionary
NSDictionary *dictAttributes = [NSDictionary dictionaryWithObject:objFont forKey:NSFontAttributeName];
// Set dictionary to the titleTextAttributes
[yourSegment setTitleTextAttributes:dictAttributes forState:UIControlStateNormal];
আপনার যদি কোনও প্রশ্ন থাকে তবে আমার সাথে যোগাযোগ করুন।
nil
মান।
সুইফট 4
let font = UIFont.systemFont(ofSize: 16)
UISegmentedControl.setTitleTextAttributes([NSFontAttributeName: font], for: .normal)
Instance member 'setTitleTextAttributes' cannot be used on type 'UISegmentedControl'; did you mean to use a value of this type instead?
আইওএস 13 / সুইফট 5
ড্যানিয়েল আমাকে সঠিক উপায়ের দিকে ইঙ্গিত করলেন। আমি এটি এর মতো ব্যবহার করেছি
float scaleFactor = 0.8f;
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]
initWithFrame:CGRectMake(10, 70, 300/scaleFactor,35)];
[segmentedControl insertSegmentWithTitle:@"..." atIndex:0 animated:NO];
[segmentedControl insertSegmentWithTitle:@"..." atIndex:1 animated:NO];
[segmentedControl insertSegmentWithTitle:@"..." atIndex:2 animated:NO];
segmentedControl.transform = CGAffineTransformMakeScale(scaleFactor, 1);
CGPoint segmentedControlCenter = segmentedControl.center;
segmentedControlCenter.x = self.center.x;
segmentedControl.center = segmentedControlCenter;
UISegmentedControl
হরফ আকার নির্ধারণের জন্য এক্সটেনশন ।
extension UISegmentedControl {
@available(iOS 8.2, *)
func setFontSize(fontSize: CGFloat) {
let normalTextAttributes: [NSObject : AnyObject]!
if #available(iOS 9.0, *) {
normalTextAttributes = [
NSFontAttributeName: UIFont.monospacedDigitSystemFontOfSize(fontSize, weight: UIFontWeightRegular)
]
} else {
normalTextAttributes = [
NSFontAttributeName: UIFont.systemFontOfSize(fontSize, weight: UIFontWeightRegular)
]
}
self.setTitleTextAttributes(normalTextAttributes, forState: .Normal)
}
}
UISegmentedControl.appearance().setTitleTextAttributes(NSDictionary(objects: [UIFont.systemFont(ofSize: 16.0)],
forKeys: [kCTFontAttributeName as! NSCopying]) as? [AnyHashable : Any],
for: UIControlState.normal)
ইন swift 5
,
let font = UIFont.systemFont(ofSize: 16)
UISegmentedControl.appearance().setTitleTextAttributes([NSAttributedString.Key.font: font], for: .normal)
আপনি ইউআইআইএবেলড কনট্রোল দিয়ে শুরু হওয়া প্রতিটি মতামত পুনরাবৃত্তভাবে পরীক্ষা করেই ইউআইএলবেলের আসল ফন্টে পেতে পারেন। আমি জানি না এটি করার সর্বোত্তম উপায় কিনা তবে এটি কার্যকর হয় works
@interface tmpSegmentedControlTextViewController : UIViewController {
}
@property (nonatomic, assign) IBOutlet UISegmentedControl * theControl;
@end
@implementation tmpSegmentedControlTextViewController
@synthesize theControl; // UISegmentedControl
- (void)viewDidLoad {
[self printControl:[self theControl]];
[super viewDidLoad];
}
- (void) printControl:(UIView *) view {
NSArray * views = [view subviews];
NSInteger idx,idxMax;
for (idx = 0, idxMax = views.count; idx < idxMax; idx++) {
UIView * thisView = [views objectAtIndex:idx];
UILabel * tmpLabel = (UILabel *) thisView;
if ([tmpLabel respondsToSelector:@selector(text)]) {
NSLog(@"TEXT for view %d: %@",idx,tmpLabel.text);
[tmpLabel setTextColor:[UIColor blackColor]];
}
if (thisView.subviews.count) {
NSLog(@"View has subviews");
[self printControl:thisView];
}
}
}
@end
উপরের কোডে আমি কেবলমাত্র ইউআইএলবেলের পাঠ্য রঙটি সেট করছি তবে আপনি মনে করতে পারেন ফন্টের সম্পত্তিটি দখল বা সেট করতে পারবেন।
এটি উদ্দেশ্য সি এর জন্য মাইসেগমেন্টড কন্ট্রোলের জায়গায় আপনার বিভাগযুক্ত নিয়ন্ত্রণের নাম যুক্ত করুন
UIFont *font = [UIFont systemFontOfSize:11.0f];
NSDictionary *attributes = [NSDictionary dictionaryWithObject:font
forKey:UITextAttributeFont];
[mySegmentedcontrol setTitleTextAttributes:attributes forState:UIControlStateNormal];
আশা করি এটা সাহায্য করবে