我正在尝试获取一个搜索栏及其在导航栏中的范围,就像视图首次出现的方式一样。如果您只需将 UISearchBar 拖到界面生成器中的表视图控制器上,它就会像标题单元格一样放置在表中。然后,当你点击它时,它会动画化成我在下面寻找的阵型。问题是我希望它以这种方式开始,无需任何点击,左侧有后退按钮,右侧没有取消按钮:

因此,为了让搜索栏立即获得焦点而无需点击,我尝试添加[_searchBar becomeFirstResponder];viewDidLoad ,但这不起作用。接下来我尝试了:
self.searchDisplayController.displaysSearchBarInNavigationBar = YES;
Run Code Online (Sandbox Code Playgroud)
搜索栏确实会显示在导航栏中,但范围栏消失了(为什么苹果为什么)并且存在一个尴尬的间隙。

我还尝试过对 UINavigationBar 进行子类化并使其更高。更改其大小很容易,但内容会在栏的底部对齐并与您尝试添加到其中的任何内容重叠。
因此,重申一下,当视图首次出现时,我需要在导航栏中显示搜索栏并带有范围控件,而无需用户进行任何点击。我还应该指定这是在 UITableViewController 上(因为该页面有 UIRefreshConrol),因此简单地将工具栏放在表视图上方并不是一个选项。谢谢。
在使用 Stripe 设置 Apple pay 的文档中,这些步骤告诉您使用 stripe 元素创建付款请求,以便显示 apple pay 按钮 - 示例请求是一次性直接收费。您必须有付款请求才能显示该按钮 - 那么如何为订阅创建付款请求?支付请求对象是一个stripe elements的东西,在stripe api中没有描述。
var elements = stripe.elements();
var prButton = elements.create('paymentRequestButton', {
paymentRequest: paymentRequest,
});
// Check the availability of the Payment Request API first.
paymentRequest.canMakePayment().then(function(result) {
if (result) {
prButton.mount('#payment-request-button');
} else {
document.getElementById('payment-request-button').style.display = 'none';
}
});
Run Code Online (Sandbox Code Playgroud)
使用信用卡的流程完全不同。它不需要任何付款请求,您只需从 stripe elements 卡表单创建一个令牌即可创建客户。
Stripe使用 Apple Pay进行定期付款的支持页面只是说“apple pay 将创建一个令牌”,但没有提供如何在不一次性收费的情况下设置它的线索。
如何让stripe显示apple pay按钮而不要求付款?如果我必须要求付款,是否仅适用于订阅的一个时间间隔?这笔金额是否可以定期计费?
这是一个n00b问题,但我似乎无法解决阅读我的书籍和笔记:
我正在实现一个导航控件,我无法弄清楚为什么我的代码没有为它设置一种色彩颜色.
在我的app委托实现文件中,在applicationDidFinishLaunching:方法下:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
rootViewController *rootView = [[rootViewController alloc] initWithNibName:@"rootViewController" bundle:nil];
self.navController = [[UINavigationController alloc] initWithRootViewController:rootView];
self.navController.navigationBar.tintColor = [UIColor colorWithRed:20/255 green:44/255 blue:86/255 alpha:1];
Run Code Online (Sandbox Code Playgroud)
在navController初始化得很好,但有一个黑色.
我的iOS phonegap应用程序有一个问题,状态栏与iOS 7中的webview重叠.我发现这个答案解决了问题,但第二步,调用
[self setNeedsStatusBarAppearanceUpdate];
Run Code Online (Sandbox Code Playgroud)
in viewDidLoad导致应用程序在iOS 6中崩溃并抛出unrecognized selector.
iOS 11 中有一个新的 CMDeviceMotion标题属性。
我正在尝试使用它,但发现它总是-1.0. 它应该将度数保存为 Double from 0.0to 360.0。
我的应用面向 iOS 11+,我正在运行 iOS 11 的物理设备 (iPhone) 上进行测试。
let mmgr = CMMotionManager()
mmgr.showsDeviceMovementDisplay = true // for calibrating magnetometer, maybe not needed?
mmgr.deviceMotionUpdateInterval = 0.1
mmgr.startDeviceMotionUpdates(to: .main, withHandler: { (motionData: CMDeviceMotion?, error: Error?) in
if let motion = motionData {
print("heading:", motion.heading) // always -1.0
}
})
Run Code Online (Sandbox Code Playgroud)
我可以很好地获得其他属性,例如motion.attitude.roll. 有什么我想念的吗?
我已经实现了一个带有CSS3的下拉菜单,当父项li悬停时,它会很好地淡入下拉菜单.但下拉不会淡出,这就是原因.由于无法转换显示属性,因此通过转换不透明度来实现淡入淡出.由于只是不透明度已经过渡,您需要将子移动ul- 否则隐藏的子菜单将在悬停时出现.
我已经创建了一个JS小提琴来演示这一点 - 如果没有left:1000px;规则ul#mainNav li ul,它会淡出就好了.但是你可以将鼠标悬停在隐形菜单上.- http://jsfiddle.net/YZvdm/
那么我怎样才能让它淡出而不会让它不小心可以躲避呢?height:0;也将消除淡出,所以这不是一个选择.
我有2个查询我可以运行并且会得到2个完全不同的结果,仅仅因为我使用"横向单引号"而不是单引号.见下文:
SELECT * FROM items WHERE 'natural' IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
无论"自然"列是否设置为NULL,都将返回每条记录
SELECT * FROM items WHERE `natural` IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
将正确地仅返回为"自然"列设置值的记录
那是不对的.
我在PaintCode中创建了一个自定义按钮.PC有很多关于创建图形的文档,但没有使用它们.
我的方法有效,但它有问题,我会去...我走了一个UIButton子类的路径,我把它放在我的故事板中.然后我给它分配了我的自定义按钮类,我们称之为customButton.使用此方法,您可以在IB中连接动作,并且突出显示的状态由touchesBegan和touchesEnded方法一起处理,该变量与切换突出显示的视图的变量串联,但问题是,突出显示的状态永远不会显示在快速触摸上.
customButton.m:
@interface customButton ()
@property BOOL isPressed;
@end
@implementation customButton
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void) awakeFromNib {
[super awakeFromNib];
_buttonText = @"Post";
}
- (void)drawRect:(CGRect)rect
{
[StyleKit drawCustomButtonWithFrame:rect pressed:_isPressed buttonText:_buttonText];
}
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
_isPressed = YES;
[self setNeedsDisplay];
}
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[self sendActionsForControlEvents:UIControlEventTouchUpInside];
_isPressed = NO;
[self setNeedsDisplay]; …Run Code Online (Sandbox Code Playgroud) 我有一个ListComponent需要在 2 个模块中使用的组件,其中一个是延迟加载的。所以我创建了声明 ListComponent 的 SharedModule。ListComponent 使用该routerLink指令,因此它需要 RouterModule。所以我导入了RouterModule,导致了这个错误。
core.js:1598 错误错误:未捕获(承诺):错误:RouterModule.forRoot() 调用了两次。延迟加载的模块应该使用 RouterModule.forChild() 代替。
全局搜索显示我只打了RouterModule.forRoot一次电话。我的延迟加载模块调用RouterModule.forChild并且是唯一的其他路由模块。
我使用完全相同的设置创建了一个 stackblitz,但无法重现该问题。它确实有效。尽管如此,我还是不明白我的项目有什么不同。https://stackblitz.com/edit/angular-shared-component-b
我要做的是根据每个数组的长度从最高到最低重新排序多维数组.
var array0 = [9, 7, 1]
var array1 = [2]
var array2 = [20, 3, 8, 11]
var array3 = [0, 6];
var multi = [array0, array1, array2, array3];
var multiLengths = [];
$(multi).each(function(i) { // for loop using jQuery
multiLengths.push(this.length);
});
// multiLengths: 3,1,4,2
function sortDesc(a,b) { //sort in descending order
return b - a;
}
multiLengths.sort(sortDesc);
// somehow re-order multi to be: [array2, array0, array3, array1]
Run Code Online (Sandbox Code Playgroud)
那么我如何根据'multiLengths'的新排序顺序重新排序'multi'数组?这很困难,因为新的顺序是使用sort函数创建的,所以我无法真正索引sortedMulti数组的结果.
我UISearchController在我的应用程序中成功实现了一个.我在viewDidLoad我想要使用它的视图的方法中将它设置为:
_profileSearchView = [self.storyboard instantiateViewControllerWithIdentifier:@"profileListView"];
[_profileSearchView initSearchController];
self.navigationItem.titleView = _profileSearchView.searchController.searchBar;
Run Code Online (Sandbox Code Playgroud)
该initSearchController方法初始化搜索控制器,该控制器属于_profileSearchView并属于_profileSearchView:
- (void) initSearchController {
_searchController = [[UISearchController alloc] initWithSearchResultsController:self];
_searchController.delegate = self;
_searchController.hidesNavigationBarDuringPresentation = NO;
_searchController.searchBar.delegate = self;
_searchController.searchBar.searchBarStyle = UISearchBarStyleMinimal;
_searchController.searchBar.showsCancelButton = YES;
_searchController.searchBar.frame = CGRectMake(self.searchController.searchBar.frame.origin.x, self.searchController.searchBar.frame.origin.y, self.searchController.searchBar.frame.size.width, 44.0);
}
Run Code Online (Sandbox Code Playgroud)
如果我在导航控制器的根视图中使用它,这可以正常工作.但是,如果我推送视图并尝试在那里使用它,搜索控制器不会变为活动状态,并且此错误会显示在控制台中:
Warning: Attempt to present <UISearchController: 0x7fb113605220> on <RootViewController: 0x7fb11318a6d0> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)
它抱怨的RootViewController是我推出的根视图.为什么这只在根视图中工作?
更新:根视图控制器self.definesPresentationContext = YES;(推送视图也有),当我从根视图中删除它时,搜索控制器在推送视图上工作.不幸的是,这也打破了其他一些事情,所以我需要把它留在里面.那么我如何允许每个根视图和推送视图都有一个单独的功能搜索控制器?