我正在试图弄清楚如何使用UISegmentedControl的不同状态来切换视图,就像苹果在App Store中在"顶级付费"和"顶级免费"之间快速切换时一样.

推荐答案

The simplest approach is to have two views that you can toggle their visibility to indicate which view has been selected. Here is some sample code on how it can be done, definitely not an optimized way to handle the views but just to demonstrate how you can use the UISegmentControl to toggle the visible view:

- (IBAction)segmentSwitch:(id)sender {
  UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
  NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;

  if (selectedSegment == 0) {
    //toggle the correct view to be visible
    [firstView setHidden:NO];
    [secondView setHidden:YES];
  }
  else{
    //toggle the correct view to be visible
    [firstView setHidden:YES];
    [secondView setHidden:NO];
  }
}


You can of course further re-factor the code to hide/show the right view.

Ios相关问答推荐

SwiftUI:添加核心数据项时更新选项卡栏徽章

`Task` 在内部调用异步函数时阻塞主线程

将 SwiftUI 与 @AppStorage 和动态函数调用一起使用

使用 RxDatasources 作为数据源时如何填充自定义页眉/页脚视图

为 iOS 模拟器构建 Xcode,但在为 iOS 构建的对象文件中链接,用于架构“arm64”

Сocoapods 中继 URL 无法下载

禁用手势以下拉表单/页面表单模式演示

Xcode 11 向后兼容性:“UIWindowScene 仅在 iOS 13 或更高版本中可用”

在 iOS 13 全屏中呈现模式

警告:子上下文类型失败:提供给“CellRenderer”的“数字”类型的子上下文“virtualizedCell.cellKey”无效,应为“字符串”

分组 UITableview 删除外部分隔线

Xcode:“此时无法安装此应用程序.”

UIView 中的 safeAreaInsets 在 iPhone X 上为 0

iOS Swift - 获取当前本地时间和日期时间戳

Xcode 8.3.3“没有具有 iTunes Connect 访问权限的帐户”

在 iPhone X 模拟器的顶部和底部看到黑条

从 WKWebView 获取所有 cookie

使用 React Native 时,我有哪些存储数据的选项? (iOS 和安卓)

Xcode 9 中的“此函数声明不是原型”警告

Xcode 8.3 / Xcode 9.0 刷新配置文件设备