小编dor*_*ork的帖子

如何在iOS中使用导航栏隐藏/显示视图的标签栏?

我有导航栏和标签栏的视图.我想要发生的是隐藏某个视图上的标签栏,并在用户更改视图时再次显示标签栏.

我看到一段用于隐藏标签栏的代码:

-(void)makeTabBarHidden:(BOOL)hide
{
    // Custom code to hide TabBar
    if ( [tabBarController.view.subviews count] < 2 ) {
        return;
    }

    UIView *contentView;

    if ( [[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) {
        contentView = [tabBarController.view.subviews objectAtIndex:1];
    } else {
        contentView = [tabBarController.view.subviews objectAtIndex:0];
    }

    if (hide) {
        contentView.frame = tabBarController.view.bounds;       
    }
    else {
        contentView.frame = CGRectMake(tabBarController.view.bounds.origin.x,
             tabBarController.view.bounds.origin.y,
             tabBarController.view.bounds.size.width,
             tabBarController.view.bounds.size.height - tabBarController.tabBar.frame.size.height);
    }

    tabBarController.tabBar.hidden = hide;
}
Run Code Online (Sandbox Code Playgroud)

来自:http://nickwaynik.com/iphone/hide-tabbar-in-an-ios-app/

我在视图中调用它,我希望隐藏标签栏

[self makeTabBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)

当我在该视图上显示/隐藏它时,它工作正常但当我导航回到上一个视图时,那里的标签栏也是隐藏的.我试着打电话给在视图中的该功能viewDidUnload,viewWillDisappear,viewDidDisappear功能,但没有任何反应.当函数被调用在前面视图的情况也是如此viewDidLoad, …

uitabbarcontroller uinavigationcontroller ios

58
推荐指数
3
解决办法
7万
查看次数

没有调用ES6 angular-meteor ng-table getData函数

我正在尝试将我的代码重构为ES6.我正在使用角度流星和ng-table.在重构之前,数据显示在表格中.但是,在重构为ES6语法后,数据不再显示.这是重构代码的片段:

class MyController {
    constructor($scope, $reactive, NgTableParams, MyService) {
        'ngInject';

        $reactive(this).attach($scope);

        this.subscribe('myCollection');

        this.myService = MyService;

        this.helpers({
            items() {
                return this.myService.getItems();
            },
            itemTableParams() {
                const data = this.getReactively('items');

                return new NgTableParams({
                    page: 1,
                    count: 10
                }, {
                    total: data.length,
                    getData: (params) => {
                        // not called
                    }
                });
            }
        });
    }
}

class MyService {
    getItems() {
        return MyCollection.find({}, {
            sort: {
                dateCreated: -1
            }
        });
    }
}

export default angular.module('MyModule', [angularMeteor, ngTable, MyService])
    .component('MyComponent', {
        myTemplate,
        controllerAs: 'ctrl',
        controller: MyController …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ecmascript-6 ngtable angular-meteor

12
推荐指数
1
解决办法
371
查看次数

RazorGenerator没有生成正确的命名空间

我们正在为我们的项目使用RazorGenerator.当我编辑视图时,生成的文件的命名空间将更改为ASP而不是RazorGenerator的默认值,这应该是文件夹结构.我们没有更改RazorGenerator的任何设置(甚至不确定是否有设置)所以我不确定发生了什么,因为这只发生在我的机器上.我已经卸载/安装了该工具,但同样的事情发生了.有人有解决方案吗?谢谢!

asp.net razorgenerator

7
推荐指数
1
解决办法
2453
查看次数

react-boilerplate身份验证登录页面在页面重新加载时闪烁

我正在开发一个带有登录页面和应用程序其余页面的应用程序(应登录查看).我正在使用 react-boilerplate.从这里example,我编辑了我的asyncInjectors.js文件redirectToLoginredirectToDashboard方法:

//asyncInjectors.js
export function redirectToLogin(store) {
  return (nextState, replaceState) => {
    const isAuthenticated = store.getState().get('app').get('isAuthenticated');

    if (!isAuthenticated) {
      replaceState({
        pathname: '/login',
        state: {
          nextPathname: nextState.location.pathname,
        },
      });
    }
  };
}

export function redirectToDashboard(store) {
  return (nextState, replaceState) => {
    const isAuthenticated = store.getState().get('app').get('isAuthenticated');

    if (isAuthenticated) {
      replaceState('/');
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,我只是设置redirectToLoginonEnter页面和redirectToDashboard登录页面.

它工作正常但是当F5登录时页面刷新()时,登录页面会短暂呈现,然后呈现实际页面.登录页面只是调度一个authenticate动作componentWillMount,然后重定向componentDidUpdate:

//login.js
componentWillMount() {
  this.props.dispatch(authenticate()); …
Run Code Online (Sandbox Code Playgroud)

authentication reactjs redux-saga react-boilerplate

6
推荐指数
1
解决办法
1745
查看次数

键入autoresizing textarea继续聚焦在元素的顶部

我有一个扩大的textarea.当textarea已经扩展到足以到达窗口的底部时,主体会闪烁/滚动回到textarea的顶部,除非滚动窗口,否则您无法看到键入的最后一个字符.

样本可以在这个jsfiddle中找到.我尝试在身体上添加一个scrollTo

window.scrollTo(0, document.getElementsByTagName('textarea')[0].getBoundingClientRect().bottom);
Run Code Online (Sandbox Code Playgroud)

如何从窗口计算光标在textarea中的偏移量?我想要获得光标的顶部偏移,如果光标已经超出折叠范围,只需将窗口滚动到其位置.

对此的帮助将不胜感激:)

javascript jquery textarea cursor-position autoresize

5
推荐指数
1
解决办法
1148
查看次数

在模拟iPhone时,React iframe组件在Chrome中加载窗口

我有一个简单的IFrame组件,我只是将src,height和onLoad传递给它.父母只在iframe下面有一些文字.加载iframe时,父级滚动显示页面底部.只有当模拟设备是iPhone(所有版本)时才会在Chrome中发生这种情况; 它适用于模拟的Android设备.我没有在实际设备中测试过,因为我没有iPhone.

这是IFrame组件:

export class IFrame extends Component {
  static propTypes = {
    src: PropTypes.string.isRequired,
    onLoad: PropTypes.func,
  };

  constructor(props) {
    super(props);
    this.iframe = React.createRef();
  }

  handleOnLoad = () => {
    const { onLoad } = this.props;

    window.scrollTo(0, 0);

    if (onLoad) {
      onLoad();
    }
  }

  render() {
    return (<iframe
      ref={this.iframe}
      src={this.props.src}
      onLoad={this.handleOnLoad}
    />);
  }
}
Run Code Online (Sandbox Code Playgroud)

这就是它的用法.

class MyComponent extends Component {
  static propTypes = {
    iframeSrc: PropTypes.string.isRequired,
  };

  handleIframeLoad() {
    // Do something. Or nothing.
  }

  render() {
    return (
      <Fragment> …
Run Code Online (Sandbox Code Playgroud)

javascript iphone iframe google-chrome-devtools reactjs

5
推荐指数
0
解决办法
317
查看次数

使用switch语句的最佳做法是什么?拼图?具体?

只是想知道如果两个代码块产生相同的结果,哪种方法会更好:


string  from = ddFrom.SelectedItem.ToString(),
            to = ddTo.SelectedItem.ToString();

switch(from)
{
    case "celsius":
        switch(to)
        {
            case "celsius":
                break;
            case "fahrenheit":
                break;
            case "kelvin":
                break;
        }
        break;

    case "fahrenheit":
        switch(to)
        {
            case "celsius":
                break;
            case "fahrenheit":
                break;
            case "kelvin":
                break;
        }
        break;

    case "kelvin":
        switch(to)
        {
            case "celsius":
                break;
            case "fahrenheit":
                break;
            case "kelvin":
                break;
        }
        break;
}

或者这个:


string  from = ddFrom.SelectedItem.ToString(),
            to = ddTo.SelectedItem.ToString(),
            conversion = from + to;

switch(conversion)
{
    case "celsiusfahrenheit":
        break;
    case "celsiuskelvin":
        break;
    case "fahrenheitcelsius":
        break; …
Run Code Online (Sandbox Code Playgroud)

c# nested switch-statement

3
推荐指数
1
解决办法
4755
查看次数

忽略继承类中的[ScriptIgnore]属性

我有一个基类,其中属性具有ScriptIgnore属性:

public class Base
{
    public int Id { get; set; }

    [ScriptIgnore]
    public virtual string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我还有另一个继承自Base类的类:

public class Inherting : Base
{
    public override string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我尝试覆盖Name属性但它仍然没有被序列化.有没有办法覆盖ScriptIgnore属性(在inherting类中忽略它)?

c# scriptignore

3
推荐指数
1
解决办法
1630
查看次数

有没有办法让 LitHtml 属性可选?

我不是在谈论布尔属性,比如class在没有 CSS 类的情况下不想添加空类属性的属性。

html`<span class=${hasClass ? 'my-class' : ''}></span>`
Run Code Online (Sandbox Code Playgroud)

lit-element lit-html

3
推荐指数
1
解决办法
1298
查看次数

LitElement 未更新列表中的复选框

我有一个简单的检查清单,每个项目都有一个删除按钮。当我检查第一个项目然后删除它时,列表更新,删除该项目,但选中下一个项目的复选框。下一项的属性是正确的。

这是我的代码:

import { LitElement, html } from 'lit-element';

class CheckList extends LitElement {
  static get properties() {
    return {
      items: { type: Array },
    };
  }

  constructor() {
    super();
    this.items = [
      {
        id: 1,
        text: 'Item 1',
        isDone: false,
      },
      {
        id: 2,
        text: 'Item 2',
        isDone: false,
      },
    ];

    this.toggleCheck = this.toggleCheck.bind(this);
    this.deleteItem = this.deleteItem.bind(this);
  }

  render() {
    return html`
      <ul>
        ${this.items.map(item => html`
          <li>
            <input
              type="checkbox"
              value=${item.id}
              ?checked=${item.isDone}
              @click=${this.toggleCheck}
            >
            ${item.text}
            <button @click=${this.deleteItem}>X</button>
          </li>
        `)}
      </ul> …
Run Code Online (Sandbox Code Playgroud)

javascript lit-element lit-html

3
推荐指数
1
解决办法
2060
查看次数

延期承诺价值未更新/解决/延期

我有一个控制器功能,可以创建一些东西 调用该函数时,setInterval运行以获取该项的状态.

这是服务:

(function () {
    'use strict';

    function myService($q) {
        let deferred = $q.defer();

        function createSomething(name) {
            Meteor.call('createSomething', name, (err, res) {
                if (err) {
                    deferred.reject(err);
                } else {
                    //value returned is the created item (id, name, status)
                    deferred.resolve(res);
                }
            });

            return deferred.promise;
        }

        function getStatus(id) {
            Meteor.call('getStatus', id, (err, res) {
                if (err) {
                    deferred.reject(err);
                } else {
                    //statuses are queued, processing, created
                    deferred.resolve(res);
                }
            });

            return deferred.promise;
        }

        return {
            createSomething: createSomething,
            getStatus: getStatus
        } …
Run Code Online (Sandbox Code Playgroud)

javascript promise angularjs meteor

0
推荐指数
1
解决办法
373
查看次数