从另一个视图 IOS 更改滚动条背景

Posted

技术标签:

【中文标题】从另一个视图 IOS 更改滚动条背景【英文标题】:Change Scrollbar background from another view IOS 【发布时间】:2015-10-13 09:48:02 【问题描述】:

这是主视图 enter image description here

当有人点击“银行”按钮时。 Action 将加载 BaseviewController 。

这是按钮动作。

HomeViewController.m

BaseViewController *clickbutton  = [[BaseViewController alloc] initWithNibName:@"BaseViewController" bundle:nil] ;
[self presentViewController:clickbutton animated:YES completion:nil];

这是 BaseView enter image description here

有一个滚动条可以加载每个视图。滚动条 背景是绿色。并在下一个更改背景是 问题。

BaseViewController.m

-(void)ViewDidLoad

   PriorityViewController  *obj ;

   UINavigationController *nav;

   obj  = [[ PriorityViewController alloc]  initWithNibName:@"PriorityViewController" bundle:nil] ;

   nav = [[UINavigationController alloc] initWithRootViewController:obj];

   nav.view.frame = rect;

   [self.view addSubview:self.nav.view];

 

点击“服务请求”时。

  OtherBankTransferViewController *obj;
  obj  = [[OtherBankTransferViewController   alloc]initWithNibName:@"OtherBankTransferViewController" bundle:nil];

[self.navigationController  pushViewController:obj animated:YES  ];

这将像我在这里上传的第二张图片一样加载。 我只想更改滚动条的背景颜色 我想把滚动条改成黑色。

我不知道。如果有人解释我! 提前致谢。

【问题讨论】:

[myScrollView setBackgroundColor:[UIColor blackcolor]]; 点击服务请求后,它将加载另一个视图控制器(导航)。 你的滚动条在哪个视图中,你想在哪里改变颜色? 当我点击“服务请求”时,会出现一个新视图。我想改变这个新视图的滚动条的背景颜色。 【参考方案1】:

方法 1: 与其在每个 ViewController 中初始化滚动条,不如在 BaseView Controller 中分配初始化它并将它的实例传递给所有 View Controller。 由于现在所有 ViewController 都将具有相同的实例,因此可以轻松更改滚动条的背景。

方法 2: 您可以在想要更改滚动条颜色时发布通知, 为您发布的通知添加观察者,并通过通知您可以传递要为所有滚动条设置的颜色。

发布通知当你想改变颜色时

NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[UIColor blackColor] forKey:@"someKey"];
[[NSNotificationCenter defaultCenter] postNotificationName: @"TestNotification" object:nil userInfo:userInfo];

在 viewDidLoad 中添加观察者

[[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(receiveTestNotification:) 
    name:@"TestNotification"
    object:nil];

处理收到的通知的方法

- (void) receiveTestNotification:(NSNotification *) notification

    NSDictionary *userInfo = notification.userInfo;
    UIColor *backGroundColor = [userInfo objectForKey:@"someKey"];
    // assign this color to your scrollBar in each ViewController


删除 viewDidUnload 中的观察者

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"TestNotification" object:nil];

【讨论】:

以上是关于从另一个视图 IOS 更改滚动条背景的主要内容,如果未能解决你的问题,请参考以下文章

滚动视图内的iOS webView:根据设备方向更改高度

在 iOS webkit webview 中隐藏滚动视图和滚动条

在 ios 的滚动视图内检测按钮的触摸

更改滚动条样式

unity 中UGUI制作滚动条视图效果(按钮)

更改网页内滚动条效果