How to resize a UISwitch?
How to resize a UISwitch?
I have made a custom UISwitch (from this post). But the problem is, my custom texts are a bit long. Is there any way to resize the switch? [I tried setBounds
, did not work]
Edit:
Here is the code I used:
@interface CustomUISwitch : UISwitch - (void) setLeftLabelText: (NSString *) labelText; - (void) setRightLabelText: (NSString *) labelText; @end @implementation CustomUISwitch - (UIView *) slider { return [[self subviews] lastObject]; } - (UIView *) textHolder { return [[[self slider] subviews] objectAtIndex:2]; } - (UILabel *) leftLabel { return [[[self textHolder] subviews] objectAtIndex:0]; } - (UILabel *) rightLabel { return [[[self textHolder] subviews] objectAtIndex:1]; } - (void) setLeftLabelText: (NSString *) labelText { [[self leftLabel] setText:labelText]; } - (void) setRightLabelText: (NSString *) labelText { [[self rightLabel] setText:labelText]; } @end mySwitch = [[CustomUISwitch alloc] initWithFrame:CGRectZero]; //Tried these, but did not work //CGRect aFrame = mySwitch.frame; //aFrame.size.width = 200; //aFrame.size.height = 100; //mySwitch.frame = aFrame; [mySwitch setLeftLabelText: @"longValue1"]; [mySwitch setRightLabelText: @"longValue2"];
Answer by emenegro for How to resize a UISwitch?
UISwitch is a subclass of UIView so it has frame and this must work.
CGRect aFrame = _mySwitch.frame; aFrame.size.width = newWidth; aFrame.size.height = newHeight; _mySwitch.frame = aFrame;
Answer by Alex for How to resize a UISwitch?
Many controls are meant to be a specific size. If you were implementing this yourself, you would override setFrame:
, adjust the frame parameter to match your control's required size, and then pass that to [super setFrame:]
.
If you subclass a control that has this behavior, there's really no way to override it because your subclass will inherit the superclass's implementation of setFrame:
, which modifies your frame rectangle. And there's no way to set the frame of your control without calling [super setFrame:]
.
You'll most likely have to inherit from UIControl
and implement the properties/behaviors you want from UISwitch
manually to work around this.
Answer by progrmr for How to resize a UISwitch?
UISwitch is not designed to be customized.
I think the your best solution is to download one of the custom switch implementations mentioned in the other question that you referred to. Either UICustomSwitch or RCSwitch. They both should be able to handle wide labels.
Answer by mxg for How to resize a UISwitch?
The simplest way is to resize it, as a view:
UISwitch *mySwitch = [[UISwitch alloc] init]; mySwitch.transform = CGAffineTransformMakeScale(0.75, 0.75);
and you don't have to care about anything else!
Answer by saba for How to resize a UISwitch?
There is no option for resizing uiswitch in xib, so need to create and resize it in controller class,
UISwitch *onoff = [[UISwitch alloc] initWithFrame: CGRectMake(0, 0, 10, 10)]; onoff.transform = CGAffineTransformMakeScale(0.50, 0.50); [self.view addSubview:onoff];
Answer by ladhani for How to resize a UISwitch?
Here is a solution in code:
UISwitch *mySwitchNewsletter = [[UISwitch alloc] initWithFrame: CGRectMake(varSettingsSwitchNewsletter_x, varSettingsSwitchNewsletter_y, varSettingsSwitchNewsletter_width, varSettingsSwitchNewsletter_height)]; if (mySwitchNewsletter != nil) { [varCommerceSettingsView addSubview:mySwitchNewsletter]; float mySwitchScaleFactor = (varSettingsSwitchNewsletter_scale / 100.0); CGFloat dX=mySwitchNewsletter.bounds.size.width/2, dY=mySwitchNewsletter.bounds.size.height/2; mySwitchNewsletter.transform = CGAffineTransformTranslate(CGAffineTransformScale(CGAffineTransformMakeTranslation(-dX, -dY), mySwitchScaleFactor, mySwitchScaleFactor), dX, dY); mySwitchNewsletter release]; }
Where varSettingsSwitchNewsletter_scale is an int from 0 to 100 (%).
Answer by Prajeet Shrestha for How to resize a UISwitch?
If you want to resize switch put through the Storyboard or nib, You can subclass UISwitch and override awakeFromNib method:
- (void)awakeFromNib { self.transform = CGAffineTransformMakeScale(0.75, 0.75); }
Select the switch control and change it's class to your custom switch class.
Answer by iAS for How to resize a UISwitch?
// Just in case someone trying to hard code UISwitch in Xcode 6.4 the following is working // in .h @property UISwitch * onoff; // in .m self.onoff = [[UISwitch alloc] initWithFrame:CGRectMake(160, 40, 0, 0)]; _onoff.transform = CGAffineTransformMakeScale(0.50, 0.50); [self.view addSubview:self.onoff];
Fatal error: Call to a member function getElementsByTagName() on a non-object in D:\XAMPP INSTALLASTION\xampp\htdocs\endunpratama9i\www-stackoverflow-info-proses.php on line 72
0 comments:
Post a Comment