0

当用户点击按钮时,我需要显示一个带有UISwitch和 Done 按钮的弹出窗口,并在点击弹出窗口中的完成按钮时保存开关的状态。

所以我使用UIActionSheet来做到这一点 -

sheet = [[UIActionSheet alloc] initWithTitle:@"Switch Setting" 
                                              delegate:self
                                     cancelButtonTitle:nil
                                destructiveButtonTitle:nil
                                     otherButtonTitles:@"Done", nil];

theSwitch = [[UISwitch alloc] init];
[sheet addSubview:theSwitch];
[sheet showInView:self.view];


- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == actionSheet.firstOtherButtonIndex)
    {
      theSwitch .on? NSLog(@"Switch is on") : NSLog(@"Switch if off");
    }
}

这一切都很好。我的定位有问题。不幸的是,我目前没有可以在此处发布的屏幕截图。但是开关出现在与操作表标题相同的行的最顶部,然后是完成按钮。

请有人帮助我如何将开关放置在标题下方并增加操作表的大小以使其看起来整洁。我需要这个尽快。谢谢。

4

2 回答 2

0

您可以设置交换机的框架。

将开关置于警报视图的中间

theSwitch = [[UISwitch alloc] init];
[sheet addSubview:theSwitch];
[sheet showInView:self.view];

// get the dimension of the sheet to position the switch
CGSize parentSize  = sheet.frame.size;
CGRect rect = theSwitch.frame;
rect.origin.x = parentSize.width/2.0 - rect.size.width;
rect.origin.y = parentSize.height - rect.size.height - <some space from the bottom>;
theSwitch.frame = rect;

重要的是,在为工作表调用 showInView 之后定位开关。否则,工作表的大小为零。如果您更换,您可以在底部添加相同的空间。

希望这可以帮助

于 2010-03-28T13:30:45.933 回答
0

UISwitch我认为您可以选择通过修改trumi上述框架来做到这一点。如果您想在此处UIButton放置带有图像的图像,则这是一个未记录的选项。无证,因此有被拒绝的风险。

您还会在同一线程中找到许多其他美化选项

于 2013-05-17T11:16:35.160 回答