IOS开发之——Developer Mode DIsabled

一 现象

将设备接入电脑,进行真机调试时显示如图所示信息:

Developer Mode disabled: To use xc的iPad for development,enable Developer Mode in Settings->Privacy & Security.

二 原因—设备开发者模式已关闭

隐私与安全性——>安全性——>开发者模式

三 开启开发者模式

将开发者模式打开后,设备重启

重启设备后,查看开发者模式是否打开

Xcode中设备恢复正常状态

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在antd的Tabs组件中,如果标签页的数量过多,会导致标签页在一行内无法完全展示,这时候就需要通过滚动来实现标签页的切换。Tabs组件中的滚动效果主要是通过CSS和JavaScript实现的。 首先,在Tabs组件的样式文件中,我们可以看到如下代码: ```css .rc-tabs-tab-prev, .rc-tabs-tab-next { position: absolute; top: 0; bottom: 0; width: 40px; background-color: rgba(255, 255, 255, 0.3); z-index: 1; cursor: pointer; transition: opacity 0.3s; opacity: 0; } .rc-tabs-tab-prev:hover, .rc-tabs-tab-next:hover { opacity: 1; } .rc-tabs-tab-prev { left: 0; } .rc-tabs-tab-next { right: 0; } ``` 这段CSS代码定义了两个类名为`.rc-tabs-tab-prev`和`.rc-tabs-tab-next`的样式规则。这两个类名分别对应着Tabs组件中的左滚动按钮和右滚动按钮,其中`position: absolute`将这两个元素从正常的文档流中脱离,`top: 0; bottom: 0`将它们的高度设置为与Tabs组件一样,并且`left: 0`和`right: 0`分别将它们的位置固定在Tabs组件的左右两侧。 接着,在Tabs组件的JavaScript代码中,我们可以看到如下代码: ```js handleTabScroll = ({ target, currentTarget }) => { const { scrollLeft, clientWidth, scrollWidth } = target; const prevBtn = this.prevRef.current; const nextBtn = this.nextRef.current; if (scrollLeft > 0 && !this.scrollPrev) { this.scrollPrev = true; prevBtn.style.opacity = 1; } if (scrollWidth > clientWidth && scrollLeft < scrollWidth - clientWidth && !this.scrollNext) { this.scrollNext = true; nextBtn.style.opacity = 1; } if (scrollLeft === 0 && this.scrollPrev) { this.scrollPrev = false; prevBtn.style.opacity = 0; } if (scrollWidth <= clientWidth || scrollLeft >= scrollWidth - clientWidth && this.scrollNext) { this.scrollNext = false; nextBtn.style.opacity = 0; } }; ``` 这段代码定义了一个名为`handleTabScroll`的函数,用来处理标签页的滚动事件。当标签页的滚动位置发生变化时,该函数会根据当前的滚动位置来判断是否需要显示左滚动按钮和右滚动按钮,并且通过`style.opacity`属性来控制它们的透明度。 最后,在Tabs组件的渲染方法中,我们可以看到如下代码: ```js render() { const { prefixCls, size, inkBarAnimated, tabBarGutter, onTabClick } = this.props; const inkBarNode = this.renderInkBar(); const tabsProps = { ...this.getOffset(), inkBarAnimated, tabPosition: this.getTabBarBaseProps().tabPosition, locale: this.getTabBarBaseProps().locale, style: this.getTabBarBaseProps().style, tabBarGutter, renderTabBar: this.renderTabBarNode, onTabClick, onKeyDown: this.onKeyDown, }; const contents = [ <TabsNav key="nav" {...tabsProps} saveRef={this.saveRef('tabsNavListRef')} {...this.getTabBarBaseProps()} />, inkBarNode, this.renderContent(), ]; return ( <div className={classNames(prefixCls, { [`${prefixCls}-${size}`]: !!size, })} style={this.props.style} ref={this.saveRef('rootRef')} > {this.renderWaitForWrapper(contents)} {this.renderTabBar()} <div className={`${prefixCls}-content`}>{contents}</div> <div className={`${prefixCls}-tab-prev ${this.scrollPrev ? `${prefixCls}-tab-btn-disabled` : ''}`} onClick={this.scrollToPrev} ref={this.prevRef} > {this.renderTabPrevIcon()} </div> <div className={`${prefixCls}-tab-next ${this.scrollNext ? `${prefixCls}-tab-btn-disabled` : ''}`} onClick={this.scrollToNext} ref={this.nextRef} > {this.renderTabNextIcon()} </div> </div> ); } ``` 这段代码中,在Tabs组件的最后,我们可以看到两个`<div>`元素,它们的类名分别为`${prefixCls}-tab-prev`和`${prefixCls}-tab-next`,这正是左滚动按钮和右滚动按钮所在的元素。在这里,我们还可以看到通过`ref`属性将它们与组件的实例绑定起来,以便在JavaScript代码中能够访问到它们。 总结一下,Tabs组件的滚动效果主要是通过CSS和JavaScript来实现的。通过CSS代码定义左滚动按钮和右滚动按钮的样式规则,使它们能够固定在Tabs组件的左右两侧;通过JavaScript代码监听标签页的滚动事件,根据当前的滚动位置来判断是否需要显示左滚动按钮和右滚动按钮,并且通过`style.opacity`属性来控制它们的透明度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值